Lintcode 2 56 兩數之和

2021-08-14 15:49:11 字數 791 閱讀 6380

題目:給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 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,...