原始题目:
给定一个无序的整数序列, 找最长的连续数字序列。
例如:
给定[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]
问题内容: 假设我在numpy数组中有一堆数字,并且根据返回布尔数组的条件对它们进行了测试: 并使用此布尔数组,我想计算True连续出现的所有长度。例如,如果我有,我想回去。 我可以使用以下代码来做到这一点: 但是是否已经为此或python,numpy,scipy等函数实现了任何功能,该函数计算给定输入在列表或数组中连续出现的长度? 问题答案: 这是使用的解决方案(可能不是最快的解决方案):
我有一个数据帧: 而我的目标是找到最长的连续增长期。它应该返回:老实说,我不知道从哪里开始。这些是我在熊猫的第一步,我不知道我应该使用哪些工具来获得这些信息。 有谁能帮我/给我指明正确的方向吗?
我为这个问题写了一个方法:输入:整数数组返回:最长连续整数序列的长度。like:对于{9,1,2,3},返回3,因为{1,2,3} 这个方法运行得不好。希望有人能帮我调试。 非常感谢!!!
本文向大家介绍使用JavaScript中的while循环查找最长的连续数字子数组,包括了使用JavaScript中的while循环查找最长的连续数字子数组的使用技巧和注意事项,需要的朋友参考一下 我们需要编写一个带有while语句的函数,该函数确定正整数数组中最大的连续子数组的长度。 例如- 如果输入数组是- 那么输出应该是- 如果输入数组是- 那么输出应该是- 因此,让我们为该函数编写代码- 示
我想显示给定数组int中的所有连续序列。最后,我想用文本显示最长的序列。 我对数组进行了排序,找到了所有序列 以下仅是一小段代码,因为我知道其余部分不起作用: 我尝试了许多不同的方法,但无法弄清楚。
问题内容: 对于这个例子说,我有两个字段的表,和。 该表具有以下数据 我想回来 我想返回的结果是每个区域递增连续值的最长长度。对于。 我将如何在MS Sql 2005上执行此操作? 问题答案: 一种方法是使用遍历每一行的递归CTE。如果该行符合条件(增加同一区域的订单号),则将链长增加一。如果没有,则启动一个新链: SQL Fiddle的实时示例。 另一种方法是使用查询查找“中断”,即以相同区域的