文章目录
使用js写一个 导弹拦截的测试题
题目是:某国家向我们国家发射导弹,拦截导弹系统进行导弹拦截,导弹距离地面的高度数据为[8000,7000,9000,5000,6500,2000,4000,7500],
导弹系统开始拦截,有一个致命的问题,每当拦截一个导弹时,下次再进行导弹拦截,高度不可以高于上一枚导弹的高度,需要几套反导系统,可以将所有导弹全部拦截下来?
先定义一个空列表,使用for循环往里面放,放几次就是需要几套导弹
let arr1 = []
let arr = [8000, 7000, 9000, 5000, 6500, 2000, 4000, 7500]
let a = 0
let c = 0
for (let i = 0; i < arr.length; i++) {
if (arr1.findIndex(item => item == arr[i]) == -1) {
let arrr = []
arrr.push(arr[i])
for (let cc = i; cc < arr.length; cc++) {
c = arrr[arrr.length - 1]
if (arr1.findIndex(item => item == arr[cc]) == -1) {
if (c > arr[cc]) {
arrr.push(arr[cc])
}
}
}
a += 1
console.log(arrr);
arr1.push(...arrr)
}
}
console.log(a);
打印出来的就是三次