思路:

时间限制为O(n),即不能使用先排序后寻找的方法。

这里利用哈希表查询插入复杂度都为O(1)的特性来解,利用一个哈希表来保存每一个数字以及其所在数列的长度

遍历每一个数字n:查询表中是否存在n-1和n+1,若存在,则hash[n]的值为1 + hash[n-1] + hash[n+1],若不存在即是 1.

同时,为了预防相同数字多次判断,每一次遍历时判断该数字在表中的value是否为0,若不为0说明已经判断过了,跳过即可。

#include <bits/stdc++.h>
using namespace std;
int main()
{string input;while (cin >> input){istringstream iss(input);string temp;vector<int> vec;map<int, int> mapping;int maxNum = -1;while (getline(iss, temp, ',')){vec.push_back(atoi(temp.c_str()));mapping[atoi(temp.c_str())] = 0;}for (auto c : vec){if (mapping[c] == 0){mapping[c] = 1;if (mapping.count(c - 1)){mapping[c] += mapping[c - 1];}if (mapping.count(c + 1)){mapping[c] += mapping[c + 1];}maxNum = maxNum > mapping[c] ? maxNum : mapping[c];}}cout << maxNum << endl;}return 0;
}

转载于:https://www.cnblogs.com/ruoh3kou/p/10289642.html

[小米OJ] 4. 最长连续数列相关推荐

  1. 小米oj #4 最长连续数列

    小米oj #4 最长连续数列 题目链接 描述 输入一个乱序的连续数列,输出其中最长连续数列长度,要求算法复杂度为 O(n) . 输入 54,55,300,12,56 输出 3 输入样例 100,4,2 ...

  2. 牛牛的数列(最长连续上升子序)

    题目链接:https://ac.nowcoder.com/acm/problem/13134  分析:如何才能通过操作选择最长连续上升子序呢? 方法:我们用数组来维护一个位置的最长连续上升子序列的长度 ...

  3. leetcode--最长连续递增序列--python

    文章目录 题目 题目详情 示例 解题思路 思路 代码 运行结果 最佳方案 题目 题目详情 给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 输入: [1,3,5,4,7] 输出: 3 解 ...

  4. 连续数列(总和最大的连续数列)

    给定一个整数数组,找出总和最大的连续数列,并返回总和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6. 示例代 ...

  5. 算法--------最长连续序列(Java版本)

    题目 给定一个未排序的整数数组,找出最长连续序列的长度.要求算法的时间复杂度为 O(n).示例:输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, ...

  6. 5-3 最长连续递增子序列 (20分)

    5-3 最长连续递增子序列 (20分) 给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列.例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8 ...

  7. 【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现

    一.需求描述 输入一个字符串,编写程序找出这个字符串中的最长连续字符,并求出其连续出现的次数. 例如,"123444445"中的最长连续字符是4,其连续出现的次数为5:" ...

  8. Acwing799. 最长连续不重复子序列[C++题解]:双指针算法O(n)

    双指针算法的核心思想是把for的两重循环,即复杂度为O(n2)O(n^2)O(n2)优化成O(n)O(n)O(n) 代码的逻辑如下 for(int i=0,j=0;i<n;i++){while( ...

  9. 最长递增子序列 最长连续递增序列

    引言 这两道题有很大的相似性,在这里主要的地方就是循环的设置,不仅仅适用于这两道题,在很多类似的题目中都可以用到,要学会相应的方法才行: 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格 ...

最新文章

  1. R语言sink函数保存文件实战
  2. 疯了!装个VS2010居然要75GB的硬盘空间!!
  3. echarts一个页面有多个tooltip_可视化工具ECharts入门
  4. Boost:以协程的方式实现重构echo服务器的实例
  5. 静态库和动态库详解(部分参考别人)
  6. 安卓开源项目周报1220
  7. 自行车实现无人驾驶,背后究竟有何“天机”?
  8. maven eclipse 配置
  9. android中将日志文件输出到sd卡
  10. 造兵三国的服务器要维护多久,FAQ_造兵三国_九游手机游戏
  11. linux shell脚本 可以全局使用
  12. 中文编码--中国程序员之”银弹“?
  13. PHP之JWT接口鉴权(二) 自定义错误异常
  14. vue如何设置视频封面_vue设置视频封面教程 vue如何修改标题
  15. MessageFormat的用法
  16. php洗车分销系统_全国首个PHP宝塔IDC分销系统
  17. 上位机控制PWM占空比
  18. Redis集群管理工具redis-trib
  19. 计算机组成原理实验移位运算,移位运算实验
  20. matlab中逗号分号冒号方括号,matlab中分号、冒号、逗号等常用标点符号的作用,又快又好...

热门文章

  1. Linux 命令之 eval -- 对参数执行两次解释
  2. 互联网工程任务组(IETF)
  3. python打包成exe_【Python基础】一篇文件教你py文件打包成exe
  4. 打印pdf就一页_Excel表格打印技巧汇总,看完才发现,你连基础打印技巧都不知道...
  5. 【WebRTC---源码篇】(一)全局初始化
  6. java面试题三_最全的java面试题目三
  7. postgresql两个列模糊比较_数据分析之SQL优化系列(二)---PostgreSQL 的索引
  8. C语言:一种通用的程序设计语言
  9. python换行不执行_PYTHON无法换行问题,求指点
  10. java版 modbus crc16校验 (已测试成功)_java版 ModBus CRC16校验 (已测试成功)