Skip to content

Commit 5d19a8c

Browse files
Merge pull request #783 from changchanghwang/main
[Arthur] Week 3
2 parents 1ab3fe4 + 4d19802 commit 5d19a8c

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// time complexity: O(n)
2+
// space complexity: O(1)
3+
// prefix์™€ postfix๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ„์‚ฐ
4+
// ์˜ˆ๋ฅผ ๋“ค์–ด, [1, 2, 3, 4] ์ผ ๋•Œ,
5+
// prefix๋Š” [1, 1, 2, 6] ์ด๊ณ  postfix๋Š” [24, 12, 4, 1] ์ด๋‹ค.
6+
// ๊ทธ๋ฆฌ๊ณ  ์„œ๋กœ ๊ณฑํ•˜๋ฉด [24, 12, 8, 6] ์ด ๋œ๋‹ค.
7+
func productExceptSelf(nums []int) []int {
8+
res := make([]int, len(nums))
9+
for i := range res {
10+
res[i] = 1
11+
}
12+
13+
prefix := 1
14+
for i := 0; i < len(nums); i++ {
15+
res[i] = prefix
16+
prefix *= nums[i]
17+
}
18+
19+
postfix := 1
20+
for i := len(nums) - 1; i >= 0; i-- {
21+
res[i] *= postfix
22+
postfix *= nums[i]
23+
}
24+
25+
return res
26+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Time Complexity: O(1)
2+
// Space Complexity: O(1)
3+
func reverseBits(num uint32) uint32 {
4+
reversedBits := bits.Reverse32(num)
5+
return reversedBits
6+
}

โ€Žtwo-sum/changchanghwang.goโ€Ž

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Time: O(n)
2+
// Space: O(n)
3+
func twoSum(nums []int, target int) []int {
4+
m := make(map[int]int)
5+
6+
// O(n)
7+
for i, num := range nums {
8+
// O(1)
9+
if j, ok := m[target-num]; ok && j != i { // target = num2 + num1 -> num2 = target - num1 ์„ ์ด์šฉํ•˜์—ฌ ๋‘ ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค.
10+
return []int{j, i}
11+
}
12+
m[num] = i // ์—†๋‹ค๋ฉด ํ˜„์žฌ ์ˆ˜๋ฅผ ํ‚ค๋กœ ํ•˜์—ฌ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•œ๋‹ค.
13+
}
14+
return nil
15+
}

0 commit comments

Comments
ย (0)