輸入乙個遞增排序的陣列和乙個數字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...