Leetcode 128. Longest Consecutive Sequence
2016-06-29 11:42
603 查看
复杂度要求为线性。
这个题的解题思路是:第一步:将数组进行排序;第二步:遍历数组,并用一个数组length【i】(初始值为1)记录连续序列的长度:
如果num【i】==num【i-1】+1,length【i】=length【i-1】+1;
如果num【i】!=num【i-1】,length【i】的值不变。
求出最大的length【i】。
由于第二步的的复杂度为线性的,关键是第一步。
线性的排序方法,貌似只有桶排序,在这里我用了map,然后过了。
class Solution {
public:
int longestConsecutive(vector<int> &num) {
map<int, int>m;
int i = 0;
for (vector<int>::iterator it = num.begin(); it != num.end(); it++,i++)
{
m.insert(map<int, int>::value_type(*it, i));
}
int *f = new int[num.size()];
for (int i = 0; i < num.size(); i++)
{
f[i] = 0;
}
f[0] = 1;
map<int, int>::iterator it = m.begin();
map<int, int>::iterator it1 = m.begin();
it1++;
i = 1;
int max = 1;
for (; it1 != m.end(); it++, i++,it1++)
{
if (it->first + 1 == it1->first)
{
f[i] = f[i - 1] + 1;
}
else
{
f[i] = 1;
}
if (f[i] > max)
max = f[i];
}
return max;
}
};
这个题的解题思路是:第一步:将数组进行排序;第二步:遍历数组,并用一个数组length【i】(初始值为1)记录连续序列的长度:
如果num【i】==num【i-1】+1,length【i】=length【i-1】+1;
如果num【i】!=num【i-1】,length【i】的值不变。
求出最大的length【i】。
由于第二步的的复杂度为线性的,关键是第一步。
线性的排序方法,貌似只有桶排序,在这里我用了map,然后过了。
class Solution {
public:
int longestConsecutive(vector<int> &num) {
map<int, int>m;
int i = 0;
for (vector<int>::iterator it = num.begin(); it != num.end(); it++,i++)
{
m.insert(map<int, int>::value_type(*it, i));
}
int *f = new int[num.size()];
for (int i = 0; i < num.size(); i++)
{
f[i] = 0;
}
f[0] = 1;
map<int, int>::iterator it = m.begin();
map<int, int>::iterator it1 = m.begin();
it1++;
i = 1;
int max = 1;
for (; it1 != m.end(); it++, i++,it1++)
{
if (it->first + 1 == it1->first)
{
f[i] = f[i - 1] + 1;
}
else
{
f[i] = 1;
}
if (f[i] > max)
max = f[i];
}
return max;
}
};
相关文章推荐
- IOS UIView 04- 自定义控件
- IOS UIScrollView + UIButton 实现segemet页面和顶部标签页水平滚动效果
- 滑动UITableViewCell出现多个按钮
- 滑动UITableViewCell出现多个按钮
- DC/OS GUI 安装指南
- 将控件置于最上层 UITextView 限制行数 iOS 新手笔记
- iOS学习之GCD 信号量详解,dispatch_semaphore、NSOperationQueue
- 奇怪的异常 Process 'command '---.exe'' finished with non-zero exit value 2
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web.SessionSta
- 提示:413 Request Entity Too Large 的解决方法
- UITableView根据section设置右侧索引
- 【UI】【View】View事件分发(一)
- 【Leetcode】Count Numbers with Unique Digits
- UIAlertController的使用
- 大学生没技能没经验就业难,多亏传智播客UI设计
- three.js学习笔记 dat.gui.js和stats.js
- “只能在UI主线程更新View”这件小事,android ui
- fuel8: 在vmware中记得配置混杂模式
- UITableViewCell的显示错误
- Facebook开源的基于SQL的操作系统检测和监控框架:osquery Table详解