Skip to content

Commit 1317ce6

Browse files
committed
feat(leetcode/1): Solve Two Sum with HashMap
1 parent b8cd8fc commit 1317ce6

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

โ€Žtwo-sum/renovizee.javaโ€Ž

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,60 @@
1+
import java.util.HashMap;
2+
import java.util.Map;
13

4+
// tag renovizee
25
// https://github.com/DaleStudy/leetcode-study/issues/219
36
// https://leetcode.com/problems/two-sum/description/
7+
8+
// #์š”๊ตฌ์‚ฌํ•ญ ์š”์•ฝ
9+
// 1. int[] nums์™€ int target์ด ์ฃผ์–ด์ง„๋‹ค.
10+
// 2. nums์˜ ๋‘ ์ˆ˜์˜ ํ•ฉ์ด target๊ณผ ๊ฐ™์€ int[] index๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. (์ˆœ์„œ ์ƒ๊ด€ x)
11+
// 3. ๋˜‘๊ฐ™์€ ์›์†Œ๋ฅผ ๋‘๋ฒˆ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ณ , ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ์ •๋‹ต๋งŒ ์žˆ๋‹ค.
12+
413
class Solution {
14+
// Solv2: map
15+
// ์‹œ๊ฐ„๋ณต์žก๋„ : O(n)
16+
// ๊ณต๊ฐ„๋ณต์žก๋„ : O(1)
517
public int[] twoSum(int[] nums, int target) {
6-
int[] result = {11, 2};
18+
Map<Integer, Integer> map = new HashMap<>();
19+
int[] result = new int[2];
20+
for (int i = 0; i < nums.length; i++) {
21+
map.put(nums[i], i);
22+
}
723

24+
for (int i = 0; i < nums.length; i++) {
25+
int key = target - nums[i];
26+
if (map.containsKey(key) && map.get(key) != i) {
27+
result[0] = i;
28+
result[1] = map.get(key);
29+
}
30+
}
831
return result;
932

1033
}
34+
//-------------------------------------------------------------------------------------------------------------
35+
// Solv1: Brute Force
36+
// ์‹œ๊ฐ„๋ณต์žก๋„ : O(n^2)
37+
// ๊ณต๊ฐ„๋ณต์žก๋„ : O(1)
38+
// public int[] twoSum(int[] nums, int target) {
39+
// int size = nums.length;
40+
// for(int i = 0; i < size - 1; i++) {
41+
// for(int j = i+1; j < size; j++) {
42+
// if(target == (nums[i] + nums[j])){
43+
// return new int[]{i,j};
44+
// }
45+
// }
46+
// }
47+
// return new int[]{};
48+
// }
49+
//-------------------------------------------------------------------------------------------------------------
50+
// ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ํ”ผ๋“œ๋ฐฑ (์˜ค๋žœ๋งŒ์ด๋ผ..๊ฐœ์„  ํ•„์š”)
51+
// 1) ==: ๋‘ ๊ฐ’์ด ๊ฐ™์€์ง€ ๋น„๊ต. ๊ธฐ๋ณธ ํƒ€์ž…์€ ๊ฐ’์„ ๋น„๊ตํ•˜๊ณ , ์ฐธ์กฐ ํƒ€์ž…์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ(๋™์ผํ•œ ๊ฐ์ฒด์ธ์ง€)๋ฅผ ๋น„๊ต
52+
// ์ฐธ์กฐ ํƒ€์ž… ๊ฐ์ฒด์˜ ๋‚ด์šฉ์ด ๊ฐ™์€์ง€๋ฅผ ๋น„๊ตํ•˜๋ ค๋ฉด ์ฃผ๋กœ a.equals(b)๋ฅผ ์‚ฌ์šฉ
53+
//
54+
// 2) ์ดˆ๊ธฐํ™” ๋ฐฐ์—ด๊ณผ ๋งต
55+
// - new int[2] :size ์ดˆ๊ธฐํ™”
56+
// - new int[]{1,2,3} : ์‹ค์ œ ๊ฐ’ ์ดˆ๊ธฐํ™”
57+
// - Map<String,String> test = new HashMap<>(); ๋งต์˜ k/v ํƒ€์ž…์€ ์•ž ๋ณ€์ˆ˜์— ์„ค์ •ํ•œ๋‹ค. val ๋งŒ์‚ฌ์šฉํ•˜๋‹ค..
58+
//-------------------------------------------------------------------------------------------------------------
59+
1160
}

0 commit comments

Comments
ย (0)