題目:給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。
你需要實現的函式twosum需要返回這兩個數的下標, 並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n-1。
注意事項
你可以假設只有一組答案。
樣例給出 numbers = [2, 7, 11, 15], target = 9, 返回 [0, 1].
1.暴力搜尋,複雜度為o(n2)
class solution
}
}if(idx[0]>idx[1])//交換兩數
return idx;
}};
注意:上述交換兩數的方法輸出的都是0
2、雜湊表,複雜度為o(n)
原理:基本原理:建立乙個hashmap,先把所有的值存在hashmap中,其中關鍵字key是元素的值,value為對應元素的下標。待查詢的關鍵字為target - nums[i],遍歷陣列直到找到則返回其在陣列中的下標。時間複雜度為o(n)。
class solution
maphashmap;//建立乙個map,key是元素的值,value是元素原來的下標
for(i=0; i(nums[i], i));//把所有的元素值和下標插入到map
}for(i=0; iresult[1]) //調整大小順序
return result;
}};
參考:1.
2.
LintCode 兩數之和
兩數之和 給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是1到n,不是以0開頭。樣例 numbers 2,7,11,15 target 9 return 1,2 注意 你可以假設...
LintCode 兩數之和
題目描述 給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 1 到 n,不是以0開頭。樣例 給出 numbers 2,7,11,15 target 9,返回 1,2 做題思路 ...
兩數之和 LintCode
給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n 1。注意事項 你可以假設只有一組答案。樣例 給出 numbers 2,7,11,15 target 9,返回 0,...