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 相关文章推荐
JS 建立对象的方法
Apr 21 Javascript
HTML上传控件取消选择
Mar 06 Javascript
jquery1.10给新增元素绑定事件的方法
Mar 06 Javascript
jQuery插件开发详细教程
Jun 06 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
May 04 Javascript
JS常用算法实现代码
Nov 14 Javascript
JS解决移动web开发手机输入框弹出的问题
Mar 31 Javascript
JavaScript箭头(arrow)函数详解
Jun 04 Javascript
JS实现的简单表单验证功能完整实例
Oct 14 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
May 04 Javascript
解决VUEX的mapState/...mapState等取值问题
Jul 24 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
Discuz! Passport 通行证整合
2008/03/27 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
跟老齐学Python之再深点,更懂list
2014/09/20 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
Python3如何判断三角形的类型
2020/04/12 Python
Django设置Postgresql的操作
2020/05/14 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
机械设计专业应届生求职信
2013/11/21 职场文书
教师党员承诺书
2014/03/25 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
被告代理词范文
2015/05/25 职场文书
独生子女证明范本
2015/06/19 职场文书
《实心球》教学反思
2016/02/23 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL