时间复杂度为o(n)的解法

最长的可整合子数组的长度

http://www.nowcoder.com/questionTerminal/677a21987e5d46f1a62cded9509a94f2

#include<iostream>
#include<vector>
#include<algorithm>
#include<unordered_set>
using namespace std;

//1,将数组用哈希表存储起来这样可以实现快速查询
//2,从数组的第一个元素开始,如果当前元素为x,那么如果在哈希表中存在x-1时直接跳过此元素
//因为当我们在遍历到x-1时肯定可以采用循环的方式来找到x
//3,如果不存在x-1但是存在x+1我们采用循环的方式来找到所有的连续序列
//4,虽然for循环中嵌套了while循环,但是while循环在整个的遍历中最多遍历n次,所以总体的时间
//复杂度为o(n + n) = o(n);
//5,这个过程大家模拟一下就能理解
int longestConsecutive(vector<int>& nums) {

    if (nums.size() == 0) return 0;
    unordered_set<int> m(nums.begin(), nums.end());

    int maxlen = 1;
    int tmp;
    for (auto& e : nums) {
        tmp = e;
        if (m.count(e - 1) == 0) {
            tmp = e + 1;
            while (m.count(tmp)) {
                tmp++;
            }
        }
        maxlen = max(maxlen, tmp - e);
    }

    return maxlen;
}
int main() {

    int N;
    while(cin >> N){
    vector<int> v(N);
    for (int i = 0; i < N; ++i) {
        cin >> v[i];
    }
    cout << longestConsecutive(v)<<endl;;
    }
    return 0;
}
全部评论
你这个是错的
点赞
送花
回复
分享
发布于 2020-08-25 15:51

相关推荐

咋六月了还有面试啊,有兄弟了解这个部门吗一面结束更新更新面完了家人们,纯纯kpi啊,上来就是一道题是打印多个字符串的笛卡尔积,库吃库吃写完了,结果又来一道协程调度的题。做题就做了40分钟,也没开摄像头,也没有反问,也没有八股,最后面试官跑路的时候被我拉住问了一个问题然后不耐烦的回答一句话跑路了。收到二面邀请更新反转了家人们,刚接到邮件,明天二面,这都能二面啊,做完第一个题的时候我以为就结束了。结果面试官说,“再做一个吧”,我到时没绷住就乐了,他还问我笑啥,(我当然是笑kpi太明显啊),结果进二面了还,明天再探吧。二面结束更新刚刚结束面试,新鲜出炉热乎的面经。二面面试官一改一面面试官懒懒洋洋的作风,也开了摄像头,这是本菜鸟经历的最全面的一次面试,有拷打项目、有八股、有场景题、有手撕、有shell编程题(我直接投降)、有智力题面试官水平很高,很发散,问的也很全,就是网络有点卡顿加上面试官说话稍微带点口音,导致有些问题听不清楚。八股的范围基本也就围绕后端老四样,外加项目上的相关知识。我个人感受是大概率寄了,但是面试体验挺好,只不过有些题我直接就投降了,投降的有点多感觉,而且算法也没写到让面试官满意的程度。关于一面的两道手撕第一道可以理解为有多个字符串数组,每个数组里有多个字符串,求笛卡尔积第二道是并发三个协程,有序打印1、2、3三个数字,要求第一个协程打印一百次,第二个两百次,第三个三百次。大概是这个意思。
查看2道真题和解析
点赞 评论 收藏
转发
1 收藏 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1151984次浏览 17149人参与
# 通信和硬件还有转码的必要吗 #
11208次浏览 101人参与
# OPPO开奖 #
19216次浏览 267人参与
# 和牛牛一起刷题打卡 #
19013次浏览 1635人参与
# 实习与准备秋招该如何平衡 #
203422次浏览 3627人参与
# 大厂无回复,继续等待还是奔赴小厂 #
4974次浏览 30人参与
# 不去互联网可以去金融科技 #
20457次浏览 256人参与
# 通信硬件薪资爆料 #
265962次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2227次浏览 34人参与
# 互联网公司评价 #
97713次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25038次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454898次浏览 5124人参与
# 国企和大厂硬件兄弟怎么选? #
53911次浏览 1012人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14646次浏览 349人参与
# 硬件人的简历怎么写 #
82289次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19399次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28177次浏览 248人参与
# 学历对求职的影响 #
161250次浏览 1804人参与
# 你收到了团子的OC了吗 #
538768次浏览 6387人参与
# 你已经投递多少份简历了 #
344266次浏览 4963人参与
# 实习生应该准时下班吗 #
96987次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63525次浏览 622人参与
牛客网
牛客企业服务