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 相关文章推荐
javascript下4个跨浏览器必备的函数
Mar 07 Javascript
jQuery中(function(){})()执行顺序的理解
Mar 05 Javascript
javascript实现获取cookie过期时间的变通方法
Aug 14 Javascript
javascript实现实时输出当前的时间
Apr 27 Javascript
浅谈javascript中基本包装类型
Jun 03 Javascript
JS实现类似百叶窗下拉菜单效果
Dec 30 Javascript
JS 在数组指定位置插入/删除数据的方法
Jan 12 Javascript
BootStrap导航栏问题记录
Jul 31 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
May 07 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 Javascript
React-vscode使用jsx语法的问题及解决方法
Jun 21 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中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
JS实现颜色动态淡化效果
2017/03/06 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
jQuery选择器之子元素过滤选择器
2017/09/28 jQuery
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
js实现抽奖功能
2020/11/24 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
python实现图片批量压缩程序
2018/07/23 Python
Python清空文件并替换内容的实例
2018/10/22 Python
python文件拆分与重组实例
2018/12/10 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python调用私有属性的方法总结
2020/07/24 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
函授毕业自我鉴定
2013/12/19 职场文书
共产党员公开承诺书范文
2014/03/28 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
热爱劳动主题班会
2015/08/14 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL