Leetcode 1 求兩數之和

2021-09-29 23:54:38 字數 1342 閱讀 2578

描述:

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9

原始碼:

class solution ;}}

}throw new illegalargumentexception("no two sum solution");

//illegalargumentexception:表明向方法傳遞了乙個不合法或不正確的引數

}}

複雜度分析:

時間複雜度:o(n^2),對於每個元素,我們都試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o(n) 的時間。因此時間複雜度為 o(n^2)。

空間複雜度:o(1)。

leetcode原始碼:大鳥解法(兩遍雜湊表)

class solution 

for (int i = 0; i < nums.length; i++) ;}}

throw new illegalargumentexception("no two sum solution");

}}

複雜度分析:

時間複雜度:o(n),

我們把包含有 n 個元素的列表遍歷兩次。由於雜湊表將查詢時間縮短到 o(1),所以時間複雜度為 o(n)。

空間複雜度:o(n),

所需的額外空間取決於雜湊表中儲存的元素數量,該表中儲存了n個元素。

leetcode原始碼:大鳥解法(一遍雜湊表)

class solution ;

}map.put(nums[i], i);

}throw new illegalargumentexception("no two sum solution");

}}

複雜度分析:

時間複雜度:o(n),

我們只遍歷了包含有n個元素的列表一次。在表中進行的每次查詢只花費 o(1)的時間。

空間複雜度:o(n),

所需的額外空間取決於雜湊表中儲存的元素數量,該錶最多需要儲存n個元素。

注釋:將來等學習了雜湊表之後,將對雜湊表解法進行詳細註解;

LeetCode 1 兩數之和

給定乙個整數數列,找出其中和為特定值的那兩個數。你可以假設每個輸入都只會有一種答案,同樣的元素不能被重用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 step 1 class solution object def tw...

leetcode 1 兩數之和

1.兩數之和 這道題和程式設計之法上面的題目有以下幾個不同 1 題目所給定的陣列是無序的,程式設計之法裡面是預設有序的 2 要求輸出原陣列的序號,如果用乙個結構體維護陣列下標,那麼需要o n 的空間,顯然不是最好的方法 3 題目中包含負數,之前想用數值直接表示陣列下標,陣列值為原來的真正陣列下標,但...

leetcode 1 兩數之和

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 class solution for int i 0 ...