Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

最长递增子序列不对 #10

Open
Sansui233 opened this issue Sep 25, 2021 · 1 comment
Open

最长递增子序列不对 #10

Sansui233 opened this issue Sep 25, 2021 · 1 comment

Comments

@Sansui233
Copy link

仓库里的实现输出是 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]))
@Mayandev
Copy link
Owner

Mayandev commented Oct 7, 2021

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants