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 相关文章推荐
Prototype Template对象 学习
Jul 19 Javascript
MooTools 页面滚动浮动层智能定位实现代码
Aug 23 Javascript
jquery选择器、属性设置用法经验总结
Sep 08 Javascript
使用jQuery实现input数值增量和减量的方法
Jan 24 Javascript
js 轮播效果实例分享
Dec 28 Javascript
详解JavaScript树结构
Jan 09 Javascript
微信小程序表单弹窗实例
Jul 19 Javascript
关于js陀螺仪的理解分析
Apr 11 Javascript
更强大的vue ssr实现预取数据的方式
Jul 19 Javascript
VUEX-action可以修改state吗
Nov 19 Javascript
Javascript原生ajax请求代码实例
Feb 20 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
Apr 10 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
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
php实现两个数组相加的方法
2015/02/17 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
Python 逐行分割大txt文件的方法
2017/10/10 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
django中瀑布流写法实例代码
2019/10/14 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
Python flask框架端口失效解决方案
2020/06/04 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
三年级科学教学反思
2014/01/29 职场文书
毕业自我鉴定总结
2014/03/24 职场文书
庆六一宣传标语
2014/10/08 职场文书
教师个人学习总结
2015/02/11 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
孟佩杰观后感
2015/06/17 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
Python实现信息管理系统
2022/06/05 Python