见vue3-runtime-core
let arr = [4,2,3,1,5];console.log(LengthOfLIS(arr));console.log(IndexOfLIS(arr));console.log(NumOfLIS(arr));function LengthOfLIS(num){let len = num.length;const dp = new Array(len).fill(1);if (len<=1){return len;}let max = 1;for (let i = 1;i<len;i++){for (let j = 0;j<i;j++){if(num[i]>num[j]){dp[i] = Math.max(dp[i],dp[j]+1);}}max = Math.max(max,dp[i]);}return max;}function IndexOfLIS(num){let len = num.length;let max = [num[0]];const dp = new Array(len).fill(1).map((v,i)=>[[i]]);for (let i = 1;i<len;i++){for (let j = 0;j<i;j++){if(num[i]>num[j]){for (let k = 0;k<dp[j].length;k++){let target = [...dp[j][k],i];dp[i].push(target);if(target.length>max.length){max = [...target];}}}}}return max;}function NumOfLIS(num){let len = num.length;let max = [num[0]];const dp = new Array(len).fill(1).map((v,i)=>[[num[i]]]);for (let i = 1;i<len;i++){for (let j = 0;j<i;j++){if(num[i]>num[j]){for (let k = 0;k<dp[j].length;k++){let target = [...dp[j][k],num[i]];dp[i].push(target);if(target.length>max.length){max = [...target];}}}}}return max;}
