陣列找指定兩數之和

2021-10-04 22:01:18 字數 609 閱讀 2358

#include#includeint main();

int sum=8;

int number=sizeof(a)/sizeof(a[0]);

for (int i=0;i時間複雜第是o(n^2);這樣的**是遠遠不能打動面試官;

更好的辦法:

先將整型陣列排序,排序之後定義兩個指標left和right。left指向已排序陣列中的第乙個元素,right指向已排序陣列中的最後乙個元素,將 arr[left]+arr[right]與 給定的元素比較,若前者大,right--;若前者小,left++;若相等,則找到了一對整數之和為指定值的元素。此方法採用了排序,排序的時間複雜度為o(nlogn),排序之後掃瞄整個陣列求和比較的時間複雜度為o(n)。故總的時間複雜度為o(nlogn),空間複雜度為o(1)。

#include#includeint main();

int sum=8;

int number=sizeof(a)/sizeof(a[0]);

int low=0;

int hight=number-1;

while(lowsum)

else if((a[low]+a[hight])

leetcode python陣列 兩數之和

v1.0 def twosum nums,target lens len nums for i in range lens for j in range i 1,lens if nums i nums j target return i,j遍歷可通過時間過長 v2.0 def twosum nums...

有序陣列 兩數之和

給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。說明 返回的下標值 index1 和 index2 不是從零開始的。你可以假設每個輸入只對應唯一的答案,而且你不可以重複使...

演算法 陣列 兩數之和

自己的理解 d作為字典一開始是沒有鍵值對的 我們假設 題目的陣列是 3,5,9 所得的和是8 那麼當我們在遍歷陣列的時候 第乙個值3是不在d這個字典裡 然後我們在字典d裡加入乙個鍵值對 3 0 當我們第二個數字進來的時候 再用 8 5我們可以得到 條件為真 3在d裡 直接返回鍵值對 這個是利用了 字...