求一个算法 有200条记录,每条记录由8个1-80的数字组成要求取出'含羞号'和'连开号'含羞号:连续N次没有出现的数字,按N进行降序显示.连开号:连续N次出现的数字,按N进行降序显示.(N就是某个数字出现的次数) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的想法:把200条记录取出来放在一个二维数组中,第一维是1-80,$result[][], 第二维是如果从数据库中有这个值,就填写值,如果没有,就赋值0,然后for(1->80)循环for($i=0;$i<80;$i++){ for($j=0;$j<count($result[$i]);$j++){ if($result[$i][$j] == 0){ $s[$i] ++; $b[$i] = 0; }else{ $s[$i] = 0; $b[$i] ++; } }}$s 就是含羞号数组$b 就是连开号数组然后排序我写的只提供思路。 谢谢各位,算法出来了,不过有点乱,请这位点评while($rows=mysql_fetch_array($results)){$num=explode("-",$rows[0]);$i+=1;$nums[$i]=$num; }for($i=1;$i<=20;$i++){ for($j=1;$j<=80;$j++){ if(in_array($j,$nums[$i])){ if($liankai[$j]>=0 and $liankai[$j]<200 and ($hanxiu[$j]==0 or intval($hanxiu[$j])==(0-200))){ $liankai[$j]++; $hanxiu[$j]=-200; }else{ if($hanxiu[$j]!=-200){$hanxiu1[$j]=$hanxiu[$j];$hanxiu[$j]=-200;} else{$hanxiu[$j]=-200;} } }else{ if($hanxiu[$j]<=0 and (intval($hanxiu[$j])>(0-200)) and ($liankai[$j]==0 or $liankai[$j]==200)){ $hanxiu[$j]-=1; $liankai[$j]=200; }else{ if($liankai[$j]!=200){$liankai1[$j]=$liankai[$j];$liankai[$j]=200;} else{$liankai[$j]=200;} }}}}asort($hanxiu1);arsort($liankai1);echo "-------------------------------------------------------------------<br />";print_r($liankai1);echo "-------------------------------------------------------------------<br />";print_r($hanxiu1);?> [100分]PHP守护进程“卡死”所有进程? 问个Rewrite的规则,我搞了半天,还是不对 一个莫名其妙的`T_FUNCTION' 错误 有没有哪本书或者资料详细介绍PHP里的函数和类的使用方法啊??希望大家可以给我提供一下,感激不尽啊 请教,关于session_start() 后导至iis死掉的问题! 关于smartTemplate如何使用缓存,谢谢 初用php碰到又低级又头痛的问题,谁遇到过?? 调试通过,但是在其他机器上测试不过 怎么让自己写的web server支持php 怎样做到分数不重置呀?大神求解!!! 正则表达示中//的问题 PHP环境配置?
for($i=0;$i<80;$i++){
for($j=0;$j<count($result[$i]);$j++){
if($result[$i][$j] == 0){
$s[$i] ++;
$b[$i] = 0;
}else{
$s[$i] = 0;
$b[$i] ++;
}
}
}$s 就是含羞号数组
$b 就是连开号数组
然后排序我写的只提供思路。
算法出来了,不过有点乱,请这位点评while($rows=mysql_fetch_array($results)){
$num=explode("-",$rows[0]);
$i+=1;
$nums[$i]=$num;
}
for($i=1;$i<=20;$i++){
for($j=1;$j<=80;$j++){
if(in_array($j,$nums[$i])){
if($liankai[$j]>=0 and $liankai[$j]<200 and ($hanxiu[$j]==0 or intval($hanxiu[$j])==(0-200))){
$liankai[$j]++;
$hanxiu[$j]=-200;
}else{
if($hanxiu[$j]!=-200){$hanxiu1[$j]=$hanxiu[$j];$hanxiu[$j]=-200;}
else{$hanxiu[$j]=-200;}
}
}else{
if($hanxiu[$j]<=0 and (intval($hanxiu[$j])>(0-200)) and ($liankai[$j]==0 or $liankai[$j]==200)){
$hanxiu[$j]-=1;
$liankai[$j]=200;
}else{
if($liankai[$j]!=200){$liankai1[$j]=$liankai[$j];$liankai[$j]=200;}
else{$liankai[$j]=200;}
}
}
}
}
asort($hanxiu1);
arsort($liankai1);
echo "-------------------------------------------------------------------<br />";
print_r($liankai1);
echo "-------------------------------------------------------------------<br />";
print_r($hanxiu1);
?>