public static int findLongest(int[] A) { int[] dp = new int[A.length]; int[] help = new int[A.length]; help[0] = A[0]; dp[0] = 1; int l = 0; int r = 0; int m = 0; int right = 0; for (int i = 1; i < A.length; i++) { l = 0; r = right; while (l <= r) { m = (l + r) / 2; if (A[i] > help[m]) { l = m + 1; } else { r = m - 1; } } right = Math.max(right, l); help[l] = A[i]; dp[i] = l + 1; } return dp[n-1]; } 怎么测试都不对!
点赞 评论

相关推荐

2025-12-25 16:26
已编辑
河北科技学院 Java
勇敢的牛油不服输:2800-300那不等于2500一个月吗兄弟们
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务