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


Posted in Javascript onDecember 29, 2014

原始题目:

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

例如:

给定[100, 4, 200, 1, 3, 2],

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

小菜给出的解法:

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<_array.length;i++){

    if(_array[i] != _array[i+1]){

      _arrayTemp.push(_array[i]);

    }

  }

  _array = _arrayTemp.slice();

  _arrayTemp = [];

  //parse array

  parseLogic.addItem();

  for(i = 0;i<_array.length;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)

     参数说明:

         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]

Javascript 相关文章推荐
你可能不再需要JQUERY
Mar 09 Javascript
JavaScript常用对象的方法和属性小结
Jan 24 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
Jun 05 Javascript
javascript字符串与数组转换汇总
May 26 Javascript
zTree插件下拉树使用入门教程
Apr 11 Javascript
validationEngine 表单验证插件使用实例代码
Jun 15 Javascript
详解Chai.js断言库API中文文档
Jan 31 Javascript
理解Koa2中的async&amp;await的用法
Feb 05 Javascript
extract-text-webpack-plugin用法详解
Feb 14 Javascript
小程序如何定位所在城市及发起周边搜索
Feb 11 Javascript
vue实现计算器功能
Feb 22 Javascript
JavaScript实现简单进度条效果
Mar 25 Javascript
jQuery中document与window以及load与ready 区别详解
Dec 29 #Javascript
jQuery中:header选择器用法实例
Dec 29 #Javascript
JavaScript实现查找字符串中第一个不重复的字符
Dec 29 #Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
Dec 29 #Javascript
JavaScript中的数学运算介绍
Dec 29 #Javascript
jQuery中:lt选择器用法实例
Dec 29 #Javascript
JavaScript中的数值范围介绍
Dec 29 #Javascript
You might like
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
PHP控制网页过期时间的代码
2008/09/28 PHP
PHP 手机归属地查询 api
2010/02/08 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
jsPDF生成pdf后在网页展示实例
2014/01/16 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
python3人脸识别的两种方法
2019/04/25 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
初中三好学生事迹材料
2014/01/13 职场文书
员工评语大全
2014/01/19 职场文书
2014年大班元旦活动方案
2014/02/26 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
军训后的感想
2015/08/07 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书
python如何在word中存储本地图片
2021/04/07 Python
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python