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闭包的理解和实例
Aug 12 Javascript
载入jQuery库的最佳方法详细说明及实现代码
Dec 28 Javascript
JavaScript用select实现日期控件
Jul 17 Javascript
jquery实现手机号码选号的方法
Jul 31 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 Javascript
window.open不被拦截的简单实现代码(推荐)
Aug 04 Javascript
node.js发送邮件email的方法详解
Jan 06 Javascript
echart简介_动力节点Java学院整理
Aug 11 Javascript
vue实现word,pdf文件的导出功能
Jul 31 Javascript
详解webpack2异步加载套路
Sep 14 Javascript
vue3.0 上手体验
Sep 21 Javascript
react使用antd表单赋值,用于修改弹框的操作
Oct 29 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 验证码制作(网树注释思想)
2009/07/20 PHP
深入php之规范编程命名小结
2013/05/15 PHP
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
javascript基本语法分析说明
2008/06/15 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
关于python字符串方法分类详解
2019/08/20 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
产品促销活动策划书
2014/01/15 职场文书
业务总经理岗位职责
2014/02/03 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书