js或者其它程序的一个算法问题
2013-11-27 来自:三天半晴 2 人回应

假如有 1,2,3,3,3,3,0,1,2,5,5,5,5 这串数字不一定就只代表一串数字,你可以理解为下标一样的东西
是这样的
我要取出该串中 连续相同且大于3个的 数字(下标)
有人说用for循环,然后再循环外面定义一个变量(如num=0)做记录 循环对比下一个,相同则num++,当>=3则 打印数字。
这样的话 能得到连续相同的3 但是后面的5就得不到了,所以我 循环对比下一个不相同的时候则 num=0重置 这样想一下是能跑起来的

最后的问题是 这样的for循环 假如如上遇到4个3 那么我也只能打印3个3,需求是 连续存在相同的数字个数>=3都会返回 求大牛指点

2013-11-30 来自:云朵不说话
function cal(data,n){
var i=0;
var x = [];
for (i=0; i < data.length; i++) {
if(x.length>0){
if(x[x.length-1]!=data[i]){
if(x.length>=n){
console.log(x);
}
x=[];
x[x.length] = data[i];
}else{
x[x.length]=data[i];
}
}else{
x[x.length]=data[i];
}
}
};

cal([1,2,3,3,3,3,0,1,2,5,5,5,6,6,6,7,7,7,7,7,4,444],3)
2013-11-29 来自:waypig
  
function cal(data,n){
var i=0;
var x = [];
for (i=0; i < data.length; i++) {
if(x.length>0){
if(x[x.length-1]!=data[i]){
if(x.length>=n){
console.log(x);
}
x=[];
x[x.length] = data[i];
}else{
x[x.length]=data[i];
}
}else{
x[x.length]=data[i];
}
}
};

cal([1,2,3,3,3,3,0,1,2,5,5,5,6,6,6,7,7,7,7,7,4,444],3)

您的回应

你还未登陆,不能回应!登陆