导弹拦截(贪心算法)
某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统,但是这种拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。
某天,雷达捕捉到敌国的导弹来袭,由于该系统还在试用阶段。所以一套系统有可能不能拦截所有的导弹。输入导弹依次飞来的高度(雷达给出的高度不大于30000的正整数)。计算要拦截所有导弹最小需要配备多少套这种导弹拦截系统。
输入
n颗依次飞来的高度(1≤n≤1000)。
输出
要拦截所有导弹最小配备的系统数k。

解题关键
1.这道题要定义两个数组,一个是导弹高度,一个是系统数量
(考虑最坏情况,系统数一定要等于导弹数)
2.输入时,因为没有进行输入导弹个数,所以这里要用到while循环进行输入,还要定义n进行记录导弹数量,输入完成后n-1,导弹数量k设为1,拦截系统高度lz[1]=第一枚导弹高度dd[1]
(输入完成了,一定要按ctrl+z键,不然无法结束输入)
3.运用嵌套循环,第一层for是遍历每一个导弹的高度,需定义导弹是否被拦截变量——flag,第二层循环时,需要用此导弹高度去遍历每一个拦截系统最大拦截高度,若dd[i]<=lz[j]则将拦截系统最大拦截高度设为导弹高度,flag=1,退出循环
(拦截每一颗导弹都需在第一层循环时将flag设为0)
4.若flag仍等于0,则增加拦截系统数量,将新拦截系统最大拦截高度设为此导弹发射高度
谢谢大家阅读,后续会发布导弹拦截用动态规划法求解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】