小红书第四题代码,交卷了才写出来的,不知道对不对
public class Xhs3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] x = new int[n]; int[] h = new int[n]; for (int i = 0; i < n; i++) { x[i] = sc.nextInt(); h[i] = sc.nextInt(); } int[] nums; nums = Arraysort(x); int[] res = new int[n]; for (int j = 0; j < n; j++) { res[j] = h[nums[j]]; } System.out.println(lengthOfLIS(res)); } private static int[] Arraysort(int[] arr) { int temp; int index; int k = arr.length; int[] Index = new int[k]; for (int i = 0; i < k; i++) { Index[i] = i; } for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] < arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; index = Index[j]; Index[j] = Index[j + 1]; Index[j + 1] = index; } } } return Index; } private static int lengthOfLIS(int[] nums) { if (nums == null || nums.length <= 0) { return 0; } int len = nums.length; if (len == 1) { return 1; } int resMax = 1; int[] dp = new int[len]; Arrays.fill(dp, 1); for (int i = len - 1; i >= 0; i--) { if (i == len - 1) { dp[i] = 1; continue; } for (int j = i + 1; j < len; j++) { if (nums[i] <= nums[j]) { dp[i] = Math.max(dp[i], 1 + dp[j]); } } resMax = Math.max(resMax, dp[i]); } return resMax; } }
#小红书##笔试题目#