fe-interview-handwrite
fe-interview-handwrite copied to clipboard
最长递增子序列不对
仓库里的实现输出是 number 不是 number[],然后 arr 的状态转移也不太对。不知道是题不一样还是写成了别的。
自己实现了一下
function lis(nums: number[]): number[]{
if (nums.length === 0) return [];
const arr = new Array(nums.length).fill(1); // 保存以当前位置结尾的最大连续子串长度
for (let i = 1; i < nums.length; i++) {
if(nums[i]>nums[i-1]){
arr[i] = Math.max(arr[i-1] + 1, 1)
}
}
const lastIndex = arr.indexOf(Math.max(...arr))
return nums.slice(lastIndex + 1 - arr[lastIndex],lastIndex + 1)
}
console.log(lis([1,2,3,2,3,4,5]))
仓库里的实现输出是 number 不是 number[],然后 arr 的状态转移也不太对。不知道是题不一样还是写成了别的。
自己实现了一下
function lis(nums: number[]): number[]{ if (nums.length === 0) return []; const arr = new Array(nums.length).fill(1); // 保存以当前位置结尾的最大连续子串长度 for (let i = 1; i < nums.length; i++) { if(nums[i]>nums[i-1]){ arr[i] = Math.max(arr[i-1] + 1, 1) } } const lastIndex = arr.indexOf(Math.max(...arr)) return nums.slice(lastIndex + 1 - arr[lastIndex],lastIndex + 1) } console.log(lis([1,2,3,2,3,4,5]))
可以开一个 PR 修改或者新增一个题目