在 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