Skip to content

Commit 2761a73

Browse files
committed
🚧 [735] recursion
1 parent 749d07e commit 2761a73

File tree

1 file changed

+41
-11
lines changed

1 file changed

+41
-11
lines changed

735/my_solution.js

+41-11
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,29 @@
55
var asteroidCollision = function (asteroids) {
66
let result = []
77

8+
// const pushOrIgnore = (n) => {
9+
// let last = result[result.length - 1]
10+
// console.log(`pushOrIgnore - n: ${n}, l: ${last}`)
11+
// console.log(result)
12+
//
13+
//
14+
// if (last > n || last < 0) {
15+
// // if ((result[result.length - 1] ?? -Infinity) < n) result.push(-n)
16+
// return
17+
// }
18+
//
19+
// if (last == n) {
20+
// console.log("l===n")
21+
// result.pop()
22+
// } else if (last < n) {
23+
// console.log("l<n")
24+
// result.pop()
25+
// result.push(-n)
26+
// }
27+
//
28+
// return pushOrIgnore(n)
29+
// }
30+
831
for (let i = 0; i < asteroids.length; i++) {
932
let curr = asteroids[i]
1033
if (curr > 0 || i === 0) {
@@ -16,15 +39,19 @@ var asteroidCollision = function (asteroids) {
1639
console.log(`> i: ${i}, curr: ${curr}`)
1740
console.log(result)
1841
curr *= -1;
42+
1943
// let last = result[result.length - 1];
2044
// console.log(`> last: ${last}, curr: ${curr}`)
2145

22-
let idx = result.length - 1, collided = false;
46+
let last = null, idx = result.length - 1, collided = false;
2347
while (idx >= 0) {
24-
let last = result[idx] // last in result
48+
last = result[idx] // last in result
2549
console.log(`-> idx: ${idx}, last: ${last}`)
2650

27-
if ((last < 0) || (last > curr)) break // prev/last > curr
51+
if (
52+
(last < 0) // same direction
53+
|| (last > curr) // bigger
54+
) break // prev/last > curr
2855
// all positive
2956

3057
console.log(result)
@@ -45,20 +72,23 @@ var asteroidCollision = function (asteroids) {
4572
console.log(result)
4673
// console.log(`--> last: ${last}, curr: ${curr}`)
4774
// if (last < 0) last *= -1;
48-
if ((result[result.length - 1] ?? -Infinity) < curr) result.push(-curr)
75+
// if ((result[result.length - 1] ?? -Infinity) < curr) result.push(-curr)
76+
if (last < curr) result.push(-curr)
4977
// curr is <
78+
79+
// pushOrIgnore(curr)
5080
}
5181

5282
return result;
5383
};
5484

5585
let x =
56-
asteroidCollision([-2, 1, -2, -2]) // [-2,-2,-2]
57-
// asteroidCollision([-2, -2, 1, -1]) // [-2,-2]
58-
// asteroidCollision([-2, -1, 1, 2])
59-
// asteroidCollision([5, 10, -15])
60-
// asteroidCollision([5, 10, -5])
61-
// asteroidCollision([8, -8])
62-
// asteroidCollision([10, 2, -5])
86+
// asteroidCollision([-2, 1, -2, -2]) // [-2,-2,-2]
87+
// asteroidCollision([-2, -2, 1, -1]) // [-2,-2]
88+
// asteroidCollision([-2, -1, 1, 2])
89+
// asteroidCollision([5, 10, -15])
90+
// asteroidCollision([5, 10, -5])
91+
// asteroidCollision([8, -8])
92+
asteroidCollision([10, 2, -5])
6393
console.log("Res")
6494
console.log(x)

0 commit comments

Comments
 (0)