程式設計之法 2 2 尋找和為定值的兩個數

2022-07-29 11:54:12 字數 410 閱讀 3926

輸入乙個整數和乙個整數陣列,在陣列中查詢一對數,滿足他們的和正好是輸入的那個整數,如果有多對數的和等於輸入的整數,輸出任意一對即可。例如,如果輸入陣列[1,2,4,5,7,11,15]和整數15,那麼由於4+11=15,因此表明存在兩個數能相加為15。

#include 

#include

#include

using

namespace

std;

class solution

};

採用空間換時間的方法,利用map儲存已經存在的數,如果value-nums[i]存在,則表示結果為true。時間複雜度為o(n),空間複雜度為o(n)

《程式設計之法》2 2尋找和為定值的兩個數

題目描述 輸入乙個整數陣列和乙個整數,在陣列中查詢一對數,滿足它們的和正好等於輸入的那個整數,並輸出任一一對值。解法一 直接窮舉 雙層迴圈,複雜度為o n 2 include using namespace std void directenum int nums,int n,int len if ...

程式設計之法 面試和演算法心得(尋找和為定值的兩個數)

輸入乙個陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。咱們試著一步一步解決這個問題 注意闡述中數列有序無序的區別...

《程式設計之法》 尋找和為定值的多個數

輸入兩個整數n和sum,要求從數列1,2,3,n中隨意取出幾個數,使得它們的和等於sum,請將其中所有的可能的組合列出來。這是個01揹包問題。考慮是否取第n個數的策略,問題可以轉化為乙個只與前n 1個數相關的問題,也就是 1 如果取第n個數,那麼問題就轉化為 取前n 1個數使得它們的和為sum n ...