【实习笔试面试题】2013网易互联网实习笔试算法题-找出最大连续自然数个数.docVIP

  • 14
  • 0
  • 约4.05千字
  • 约 3页
  • 2018-04-17 发布于河南
  • 举报

【实习笔试面试题】2013网易互联网实习笔试算法题-找出最大连续自然数个数.doc

【实习笔试面试题】2013网易互联网实习笔试算法题-找出最大连续自然数个数

【实习笔试面试题】2013网易互联网实习笔试算法题-找出最大连续自然数个数 找出最大连续自然数个数 以下参考答案为自己搜集网上资料以及同学讨论所得,如有错误,还请指出。欢迎来信交流! 题目: 一个无序自然数数组,比如[100,2,1,3]求在0(n)时间复杂度内求出最大的连续自然数个数:输出应该是3 思路: 方法一:排序 可以采用一些排序方法比如基数排序、桶排序、记数排序等先进行排序。然后遍历一遍所有元素即可。当前这些排序有一些限制条件的。 方法二:维持一个hash表 维持一个hash表,大小为最大整数。遍历一次数组,用hash表记录出现在原始数组中的数。 然后设置四个个指示变量start,end,length,bestLength = 0。初始,start = end = 数组中第一个数,length = 1。然后不断执行下列操作: end = end + 1.然后ziahash表中寻找end,如果能够找到,说明end存在原始数组中。一直到找不到end位置。 然后设置length = end - start。如果length大于bestLength,则更新:bestLength = length。 然后将start和end都设置为刚才为查找到的那个数,length = 1,接着重复上面的操作,最终的bestLength 便是最大的连续自然数个数。 方法三:位图 用位图。类似方法

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档