九章算法面试题27 最大连续子集
九章算法官网-原文网址
http://www.jiuzhang.com/problem/27/
题目
给一个整数集合S,定义S的子集D为连续子集当且仅当D中的整数构成连续的整数序列。求S的最大连续子集,即包含连续整数最多的子集。如{1, 3, 4, 100, 200, 2}的最大连续子集为{1,2,3,4}
解答
下面给出一个时空复杂度都是O(n)的方法:使用Hash表,索引当前找到的所有连续子集。对于每个集合,索引{第一个数: 集合}和{最后一个数: 集合},如:{1: {1, 2, 3}, 3: {1, 2, 3}, 5: {5, 6}, 6: {5, 6}} 。遍历S的时候,假设遍历到数k,检查k-1为最后一个数和k+1为第一个数的集合在Hash表中是否存在,如果存在则和k一起合并为一个大的集合,删除之前的集合,并加入新的集合。这样每一次操作时间复杂度是O(1)的。最后找到Hash表中最大的集合输出即可。
面试官角度
这个题目的考点是Hash表。首先你可以答一个简单的排序的方法,复杂度是O(nlogn),这时候面试官会提示是否有更好的方法,于是要去想O(n)的方法。那么自然也就是需要考虑到S集合只能遍历一次。考虑使用一些O(1)复杂度的数据结构来加速运算,则想到Hash表。进而想到对于已经找到的集合,在Hash表中存储左右边界。
九章算法面试题27 最大连续子集相关推荐
- 九章算法面试题72 翻转链表I
九章算法官网-原文网址 http://www.jiuzhang.com/problem/73/ 题目 给一个链表,然后我们要把这个链表进行翻转. 在线测试本题 http://www.lintcode. ...
- 九章算法面试题13 随机数生成器
九章算法官网-原文网址 http://www.jiuzhang.com/problem/13/ 题目 有一个随机数生成器,每次等概率的返回1到5中的一个整数.现在需要你利用这个随机数生成器来设计一个新 ...
- 九章算法面试题54 带重复元素的全排列
九章算法官网-原文网址 http://www.jiuzhang.com/problem/54/ 题目 给定一个带重复元素的整数集合,求出这个集合中所有元素的全排列.对于集合[1,1,2],其本质不同的 ...
- 九章算法面试题2 抄书问题
九章算法官网-原文网址: http://www.jiuzhang.com/problem/2/ 题目 有n本书和k个抄写员.要求n本书必须连续地分配给这k个抄写员抄写.也就是说前a1本书分给第一个抄写 ...
- 九章算法面试题87 最小子数组
原文网址 www.jiuzhang.com 问题详情 给定一个整数数组,找到一个具有最小和的子数组.返回其最小和. 在线评测本题: http://www.lintcode.com/zh-cn/prob ...
- 九章算法面试题86 合并排序数组
原文网址 www.jiuzhang.com 问题详情 合并两个排序的整数数组A和B变成一个新的数组. 在线评测本题: http://www.lintcode.com/zh-cn/problem/mer ...
- 九章算法面试题81 岛屿的个数
原文网址: www.jiuzhang.com 问题详情 给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 在线评测本题: ...
- 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记
一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...
- 66 道前端算法面试题附思路分析助你查漏补缺
大家好,我是漫步. 今天来分享一篇干货,前端关于算法的分析不多,下文列举了66道前端算法面试题,希望对你有所帮助. 作者:Eno_Yao https://segmentfault.com/a/1190 ...
最新文章
- 超强后浪:14岁考上研究生,如今17岁的他或将成为全国最小的博士生!
- php acl控制,用PHP怎么实现一个ACL系统?
- 被人举报,经查属实!985高校公告:撤销其博士学位
- Github上十大热门可视化面板!再也不用担心画图啦!
- 6、SpringBoot+Mybatis整合------参数传递
- Linux c modbus 线程,Modbus读写模拟量寄存器详解
- linux sqlserver_SQL Server 与 MySQL存储引擎
- 【置顶】方立勋JavaWeb学习地址
- Marketing Cloud里取得系统contact数目的API
- 小程序沉浸式_古北水镇红叶祭嵌入戏精学院 全新文旅沉浸模式让游客嗨起来...
- java 线程执行结束_Java_如何等待子线程执行结束
- 从操作系统层面分析Java IO演进之路
- IndexError: list index out of range--Python报错原因及解决办法
- 容器、Docker与Kubernetes——Kubernetes的配置入门
- mysql 40014无效_Oracle 问题-ORA-14400: 插入的分区关键字未映射到任何分区
- 也谈谈Javascript中的几个怪异特性(上)
- 人工智能+教育的应用——教育的安全
- python必背入门代码-Python零基础入门学习笔记(一)
- python抓取直播源 并更新_虎牙直播源Python爬虫
- 如何关闭flashhelper的ff新推荐广告弹窗