java 为什么1分都没有呢?
查看原帖
java 为什么1分都没有呢?
118674
GGGGGGGGGG楼主2023/8/19 16:37
 import java.util.List;
 import java.util.Scanner;
 import java.util.ArrayList;
 import java.util.Arrays;
 class t{
      public static void main(String[] args) {
        // 导弹
        List<Integer> list = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        String s = null;
        while (!(s = scanner.nextLine()).equals("")) {
            String[] str = s.split(" ");
            for (int i = 0; i < str.length; i++) {
                list.add(Integer.parseInt(str[i]));
            }
        }
        int n = list.size();
        List<Integer> f = new ArrayList<>();
        f.add(list.get(0));
        // 最长非递增
        // 贪心+二分
        for (int i = 1; i < n; i++) {
            if (f.get(f.size() - 1) >= list.get(i)) {
                // 直接加
                f.add(list.get(i));
            } else {
                // 拿掉最先不满足
                int l = 0;
                int r = f.size() - 1;
                while (l < r) {
                    int mid = l + (r - l) / 2;
                    if (f.get(mid) >= list.get(i)) {
                        l = mid + 1;
                    } else {
                        r = mid;
                    }
                }
                f.set(l, list.get(i));
            }
        }
        System.out.println(f.size());
    }
 }
2023/8/19 16:37
加载中...