給定乙個整數陣列,找出其中兩個數相加等於目標值

2021-09-11 04:49:31 字數 513 閱讀 2736

兩層遍歷,最直觀

時間複雜度:  o(n*n)

**實現:

public int twosum(int numbers, int target) }}

return result;

}

時間複雜度:o(n)

第一遍遍歷:將(target-a)和i 作為鍵值對,存入hash表,遍歷時間複雜度為o(n), 

第二遍遍歷:查詢在hash表中有和當前數相同的key,每次查詢時間複雜度為o(1),遍歷時間複雜度為o(n), 

總的時間複雜度是o(2n)。

**實現:

public int twosum(int numbers, int target) 

// 2. 查詢在hash表中有和當前數相同的key

for (int j = 0; j < numbers.length; j++)

}return result;

}

給定乙個整數陣列,找出其中兩個數相加等於目標值

example given nums 2,7,11,15 target 9,because nums 0 nums 1 2 7 9,return 0,1 題目的意思 在無序的陣列中找兩個數,使得這兩個數之和與給定的目標值相等,返回這兩個數的下標。大佬們的做法 下面 不是好的實現方法,可以用hash表...

給定乙個陣列,找出陣列缺少的最小的正整數

題目使這樣的 請設計乙個高效演算法,查詢陣列中未出現的最小正整數。給定乙個整數陣列a,請返回陣列中未出現的最小正整數。測試樣例 1,2,3,4 返回1一看到這個題目我想到的是用另外的乙個陣列b,長度為a的長度 1,來儲存遍歷陣列a的數的值。if a i i 1 b i 1 a i 然後遍歷陣列b,出...

找出整數陣列中兩個數差值的絕對值最小

有乙個整數陣列,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數。下面是乙個結髮了,利用了stl 的sort 來晚成排序。include iostream include vector include ctime include cstdio include cmath ...