跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

JavaScript实现列出数组中最长的连续数_javascript技巧

原始题目:

给定一个无序的整数序列, 找最长的连续数字序列。

例如:

给定[100, 4, 200, 1, 3, 2],最长的连续数字序列是[1, 2, 3, 4]。

立即学习“Java免费学习笔记(深入)

”;

小菜给出的解法:

复制代码代码如下:function maxSequence(array,step){var _array = array.slice(),  //clone array_step = 1,_arrayTemp = [],i = 0;var parseLogic = {//result container parseResults: [],//set value to array,what's the last array of parseResults set: function(n){this.parseResults[this.parseResults.length-1].push(n);},//get the last array from parseResults get: function(){return this.parseResults[this.parseResults.length-1];},//put a new array in parseResults addItem: function(){this.parseResults.push([]);},//sort parseResults sortByAsc: function(){this.parseResults.sort(function(a,b){return a.length - b.length;});}};//check params_step = step || _step;//sort array by asc_array.sort(function(a,b){return a - b;});//remove repeat of data for(i = 0;i if(_array[i] != _array[i+1]){_arrayTemp.push(_array[i]);}}_array = _arrayTemp.slice();_arrayTemp = [];//parse array parseLogic.addItem();for(i = 0;i if(_array[i]+_step == _array[i+1]){parseLogic.set(_array[i]);continue;}if(_array[i]-_step == _array[i-1]){parseLogic.set(_array[i]);parseLogic.addItem();}}//sort result parseLogic.sortByAsc();//get the max sequence return parseLogic.get();}

调用说明:

方法名称:

maxSequence(array,step)使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Andr​​oid友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Andr​​oid应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更下载

参数说明:

array:要查找的数组。必要。

step:序列步长(增量)。可选,默认为1。

返回值:

此方法不会改变传入的数组,会返回一个包含最大序列的新数组。

调用示例:

maxSequence([5,7,2,4,0,3,9],1);  //return [2,3,4,5]maxSequence([5,7,2,4,0,3,9],2);  //return [5,7,9]

相关文章