解题思路:
注意事项:
参考代码:
public class Tdd { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] str = sc.nextLine().split(" "); int[] num = new int[str.length]; int[] s1 = new int[str.length]; int[] s2 = new int[str.length]; for (int i = 0; i < str.length; i++) {//将字符串中每个数字遍历到数组里面 num[i] = Integer.valueOf(str[i]); s1[i] = 1;//用来存储最多能拦截多少的导弹 s2[i] = 1;//用来存储最少需要的设备 } for (int i = 0; i < num.length; i++) { for (int j = 0; j < i; j++) { if (num[i] < num[j]) {//从这个数字的前面开始找,第一位到自己有多少比自己大的 s1[i] = Math.max(s1[i], s1[j] + 1);//那么就拦截数量加一 } else {//如果遇到比自己小的 s2[i] = Math.max(s2[i], s2[j] + 1);//那么需要设备加一 } } } Arrays.sort(s1); Arrays.sort(s2);//排序 然后输出最后一位最大值 System.out.println(s1[num.length - 1]); System.out.println(s2[num.length - 1]); } }
0.0分
3 人评分