Java 导弹拦截系统 最少系统数计算

问题描述: 某国为了防御敌国的导弹袭击,开发出了一种导弹拦截系统,但是这种拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,由于该系统还在试用阶段。所以一套系统有可能不能拦截所有的导弹

输入: 导弹依次飞来的高度(雷达给出的高度不大于30000的正整数)。

输出: 要拦截所有导弹最小需要配备多少套这种导弹拦截系统

输入格式: 输入为n颗依次飞来的高度(1<=n<=1000)

输出格式: 输出为要拦截所有导弹最小配备的系统数k

示例: 输入: 5 3 5 2 6 4 输出: 2

代码实现:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt(); // 导弹数量
        int[] heights = new int[n]; // 导弹高度数组
        for (int i = 0; i < n; i++) {
            heights[i] = scanner.nextInt();
        }
        int k = 1; // 初始需要配备的系统数
        int max = heights[0]; // 第一颗导弹可以拦截到任意高度,所以先设为最高高度
        for (int i = 1; i < n; i++) {
            if (heights[i] > max) { // 如果当前导弹高度大于之前最高高度,需要再配备一套系统
                k++;
                max = heights[i]; // 更新最高高度
            }
        }
        System.out.println(k);
        scanner.close();
    }
}

代码思路:

代码思路比较简单,用一个变量'max'记录当前已有系统可以拦截到的最高高度,每次遇到更高的导弹就再配备一套系统,并更新最高高度。最后输出需要配备的系统数'k'即可。

Java 导弹拦截系统 最少系统数计算

原文地址: https://www.cveoy.top/t/topic/oddG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录