/**
* @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.
("沒找到");
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.
("沒找到");
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.
("沒找到");
return null;
}public
static
void
main
(string[
] args)
;int target =12;
system.out.
println
("暴力方式一:");
arrays.
stream
(sumoftwonumbers.
twosum1
(nums,target)).
foreach
(x->system.out.
(x+"\t"))
; system.out.
println
("\n\n******************************=\n\n");
system.out.
println
("雜湊二遍法:");
arrays.
stream
(sumoftwonumbers.
twosum2
(nums,target)).
foreach
(x->system.out.
(x+"\t"))
; system.out.
println
("\n\n******************************=\n\n");
system.out.
println
("雜湊一遍法:");
arrays.
stream
(sumoftwonumbers.
twosum3
(nums,target)).
foreach
(x->system.out.
(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 所以返回...