小红书第四题代码,交卷了才写出来的,不知道对不对
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;
}
} #小红书##笔试题目#