Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3fd1a05

Browse files
author
侯利朋
committed
.\735.行星碰撞 ok
1 parent 596b997 commit 3fd1a05

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

735.行星碰撞.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* @lc app=leetcode.cn id=735 lang=golang
3+
*
4+
* [735] 行星碰撞
5+
*/
6+
// 12 ms, faster than 84.00%
7+
// [-2,-2,1,-2]
8+
// [8, -8]
9+
// stack 模拟
10+
func asteroidCollision(asteroids []int) []int {
11+
// 只有负数才有可能碰撞
12+
stack := make([]int, 0, len(asteroids))
13+
14+
for _, v := range asteroids {
15+
if v > 0 || len(stack) == 0 || stack[len(stack)-1] < 0 {
16+
stack = append(stack, v)
17+
} else {
18+
for {
19+
if len(stack) == 0 {
20+
stack = append(stack, v)
21+
break
22+
} else {
23+
top := stack[len(stack)-1]
24+
if top < 0 {
25+
stack = append(stack, v)
26+
break // 同方向,退出
27+
} else if top+v == 0 {
28+
stack = stack[:len(stack)-1] // pop
29+
break
30+
} else if top+v > 0 {
31+
break
32+
} else if top+v < 0 {
33+
stack = stack[:len(stack)-1] //pop
34+
}
35+
}
36+
}
37+
}
38+
}
39+
return stack
40+
}

0 commit comments

Comments
 (0)