example:
given nums = [2, 7, 11, 15], target = 9,
because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
題目的意思:在無序的陣列中找兩個數,使得這兩個數之和與給定的目標值相等,返回這兩個數的下標。
大佬們的做法:
下面**不是好的實現方法,可以用hash表來做。遍歷陣列i從第乙個數開始,j從(i+1)開始,直到找到合適的值。這個演算法的時間複雜度為o(n2),空間複雜度為o(1)。
int
twonumber_add
(int a,
int n,
int target)}}
return
*res;
}
給定乙個整數陣列,找出其中兩個數相加等於目標值
兩層遍歷,最直觀 時間複雜度 o n n 實現 public int twosum int numbers,int target return result 時間複雜度 o n 第一遍遍歷 將 target a 和i 作為鍵值對,存入hash表,遍歷時間複雜度為o n 第二遍遍歷 查詢在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 ...