fe-interview-handwrite icon indicating copy to clipboard operation
fe-interview-handwrite copied to clipboard

最长递增子序列不对

Open Sansui233 opened this issue 4 years ago • 1 comments

仓库里的实现输出是 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]))

Sansui233 avatar Sep 25 '21 19:09 Sansui233

仓库里的实现输出是 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 修改或者新增一个题目

Mayandev avatar Oct 07 '21 08:10 Mayandev