12
返回列表 发新帖
楼主: AmberLNLF
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 最長連續遞增子數組 求O(n)解法

全局:
wisdompeak2 发表于 2021-02-26 23:55:29
原题问的其实是最长的连续subsequence,不是最长的连续subarray。你看一下它的示例就知道了。所以你的代码其实不对。
没注意看样例。直接看到子数组就以为是subarray了。
回复

使用道具 举报

🔗
17717977496 2021-2-28 07:57:49 | 只看该作者
全局:
lc上有吧,忘了题号了
回复

使用道具 举报

🔗
War_Art 2021-2-28 08:50:50 | 只看该作者
全局:
维护一个数组dp和一个哈希表map_,哈希表记录nums[i]最后出现位置,如果nuns[i]-1出现过,dp[i]=dp[map_[nums[i]-1]+1,否则等于1,这样可以实现一次扫描
回复

使用道具 举报

🔗
twtypsj 2021-3-2 13:02:18 | 只看该作者
全局:
这样做可以吗?
我试了试你给的输入,结果是对的,但是没有跑其他的test


  1. #include <iostream>
  2. #include <vector>
  3. #include <unordered_map>
  4. using namespace std;
  5. int longestInc(vector<int>& nums)
  6. {
  7.     unordered_map<int,int> m;
  8.     int res = 1;
  9.     for(int i : nums)
  10.     {
  11.         if(m.count(i-1)) m[i]=m[i-1]+1;
  12.         else m[i]=1;
  13.         res = max(res, m[i]);
  14.     }
  15.     return res;
  16. }
  17. int main()
  18. {
  19.     vector<int> nums{14,15,8,6,9,10,7,1,3,11,20,12};
  20.     cout<<longestInc(nums);

  21.     return 0;
  22. [/i][/i][/i][i][i][i]}[/i][/i][/i]
  23. [i][i][i]
复制代码
[/i][/i][/i]
回复

使用道具 举报

🔗
oceanwind 2021-3-3 16:39:01 | 只看该作者
全局:
Leetcode 128?
回复

使用道具 举报

全局:
1. sort之后双指针 Ologn
2. union find with path compression On
3. dp with a hashmap to record index of an element
On
回复

使用道具 举报

全局:
ansjcy 发表于 2021-03-03 01:45:27
1. sort之后双指针 Ologn
2. union find with path compression On
3. dp with a hashmap to record index of an
typo:sort之后双指针:Onlogn
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表