LeetCode演算法第一題 兩數之和

2021-10-06 02:36:24 字數 2394 閱讀 4512

/**

* @auther: chenxiuqi

* @date: 2020/5/13 13:27

* @description:兩數之和

* 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

* * 你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。

* *

* * 示例:

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

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

* 所以返回 [0, 1]

* */

public

class

sumoftwonumbers;}

}}system.out.

print

("沒找到");

return null;

}/**

* 雜湊二遍法

** 時間複雜度:o(n)

* 由於雜湊表把時間縮短到 o(1),所以時間複雜度是 o(n)

* 空間複雜度:o(n)

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

public

static

int[

]twosum2

(int

nums,

int target)

for(

int j =

0; j < nums.length; j++);

}}system.out.

print

("沒找到");

return null;

}/**

* 雜湊一遍法

** 時間複雜度:o(n),

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

** 空間複雜度:o(n),

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

public

static

int[

]twosum3

(int

nums,

int target);}

map.

put(nums[i]

,i);

} system.out.

print

("沒找到");

return null;

}public

static

void

main

(string[

] args)

;int target =12;

system.out.

println

("暴力方式一:");

arrays.

stream

(sumoftwonumbers.

twosum1

(nums,target)).

foreach

(x->system.out.

print

(x+"\t"))

; system.out.

println

("\n\n******************************=\n\n");

system.out.

println

("雜湊二遍法:");

arrays.

stream

(sumoftwonumbers.

twosum2

(nums,target)).

foreach

(x->system.out.

print

(x+"\t"))

; system.out.

println

("\n\n******************************=\n\n");

system.out.

println

("雜湊一遍法:");

arrays.

stream

(sumoftwonumbers.

twosum3

(nums,target)).

foreach

(x->system.out.

print

(x+"\t"))

; system.out.

println()

;}}

Leetcode 第一題 兩數之和

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

leetcode第一題 兩數之和

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

LeetCode第一題 兩數之和

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