和為S的兩個數字 和為S的連續正數序列

2021-08-31 04:09:08 字數 893 閱讀 9895

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。

維護首位兩個指標,不斷向中間夾逼。

class solution 

if(array[left]+array[right] < sum)

if(array[left]+array[right] > sum)

}return res;

}};

小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100(至少包括兩個數)。沒多久,他就得到另一組連續正數和為100的序列:18,19,20,21,22。現在把問題交給你,你能不能也很快的找出所有和為s的連續正數序列? good luck!

輸出所有和為s的連續正數序列。序列內按照從小至大的順序,序列間按照開始數字從小到大的順序

暴力遍歷解法。時間複雜度:o(n^2).

class solution 

if(num > sum) break;}}

return res;

}};

維護兩個指標,乙個指向連續序列最右方,乙個指向連續序列最左方,如果相加的和大於目標值,左方指標向後移動一位;如果相加的和小於目標值,右方指標向後移動一位。

class solution 

res.push_back(tmp);

tmp.clear();

num -= left;

left++;

}else if(num < sum)

else

}return res;

}};

和為s的兩個數字 和為s 的連續正數序列

題目1 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對,輸出所有對。python題解def find num with sum data,sum hash set set res for idx,num in enumerate data another n...

面試題41 和為s的兩個數字,和為s的連續正數序列

題目一 輸入乙個遞增排序的陣列和數字,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,輸出任意一對即可。例如輸入陣列和數字15,由於4 11 15,因此輸出4和11。思路 可以利用2個指標,分別指向陣列的第乙個元素和最後的乙個元素,如果兩元素之和大於我們輸入的和,則將第二個指標向...

和為s的兩個數字 VS 和為s的連續正數序列42

題目一 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,輸出任意一對即可。例如輸入陣列和數字15。由於4 11 15,因此輸出4和11。解題思路 先在陣列中選擇兩個數 第乙個數和最後乙個數 如果它們的和等於輸入的s,那麼就找到了數字。如果小於s...