這題目有點奇怪,我們都知道陣列元素下標是從0開始的。它題目應該返回1,2,才是代表2+4=6,不管那麼多,明白它需求的意思就開始分析思路
思路很簡單:
(1)迴圈遍歷所有元素
(2)拿著每一元素與目標值做差
(3)在剩餘的元素裡面找是否有剛好等於那個差值的
(4)記錄兩個下標返回
(5)如果不存在,返回null
public
static
void
main
(string[
] args)
;int
result =
twosum
(array,5)
; system.out.
println
(arrays.
tostring
(result));
}private
static
int[
]twosum
(int
array,
int target);}
}}return null;
}
target是5
target換成6
思路講解:每乙個元素跟目標值都會有乙個差值,那麼我們就先計算出這個差值,把差值作為key,當前元素的下標作為value存在乙個map中,等迴圈到array[i]元素恰好是差值的時候,就直接返回兩個下標。
兩數之和 c Dictionary 解法
方法一 最簡單的暴力兩層迴圈 看了題目,最先想到的是,只要進行兩層迴圈,對所有的數字進行一次相加,當和為target時,將兩個值的index返回即可。public int twosum int nums,int target return indexs 執行結果,執行用時 480ms,記憶體消耗 2...
兩數之和(Python and C 解法)
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所...
LeetCode 三數之和 優化解法
題目 給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。例如,給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 最開始做的解法...