在 JavaScript 中查詢所有碰撞後的狀態
問題
我們需要編寫一個 JavaScript 函式,該函式接受一個數組 arr,它表示一維空間中不同小行星的位置。
對於每個小行星,絕對值表示其大小,而符號表示其方向(正向表示向右,負向表示向左)。每個小行星以相同的速度移動。
我們的函式應該找出所有碰撞後的小行星的狀態。如果兩個小行星相遇,較小的那個會爆炸。如果兩者大小相同,兩者都會爆炸。朝相同方向移動的兩個小行星永遠不會相遇。
例如,如果函式的輸入是
輸入
const arr = [7, 12, -8];
輸出
const output = [7, 12];
輸出說明
12 和 -8 會碰撞,得到 12。
7 和 12 永遠不會碰撞。
示例
以下是程式碼 -
const arr = [7, 12, -8];
const findState = (arr = []) => {
const track = []
for (const el of arr) {
track.push(el)
while (track[track.length - 1] < 0 && track[track.length - 2] > 0) {
const a = -track.pop()
const b = track.pop()
if (a > b) {
track.push(-a)
} else if (a < b) {
track.push(b)
}
}
}
return track
};
console.log(findState(arr));輸出
[7, 12]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP