一、题目内容

image.png

二、题解

解法1:

思路

dp

代码

  1. public class Solution {
  2. public int[] LIS(int[] arr) {
  3. // write code here
  4. if (arr == null || arr.length == 0) {
  5. return new int[]{};
  6. }
  7. int[] dp = new int[arr.length];
  8. dp[0] = 1;
  9. int maxAns = 1;
  10. for(int i = 1;i<arr.length;i++){
  11. dp[i] = 1;
  12. for(int j = 0;j<i;j++){
  13. if(arr[i]>arr[j]){
  14. dp[i] = Math.max(dp[i],dp[j]+1);
  15. }
  16. }
  17. maxAns = Math.max(maxAns,dp[i]);
  18. }
  19. int [] res = new int[maxAns];
  20. int i = arr.length-1;
  21. for(;i>=0&&maxAns>0;i--){
  22. if(dp[i] == maxAns){
  23. res[maxAns-1] = arr[i];
  24. maxAns--;
  25. }
  26. }
  27. return res;
  28. }
  29. }