这是我的代码,找到子阵列总和的最小尺寸:
function printArray($arr) {
for ($i=0; $i<count($arr); $i++) {
echo ($arr[$i].' ');
}
echo ("\n");
}
$arr = [2,3,1,2,4,3];
$bestlength = count($arr)+1;
$k = 7;
for ($i=0; $i<count($arr); $i++) {
$marker = [0,0,0,0,0,0];
$marker[$i]=1;
$sum = $arr[$i];
if ($sum >= $k) {
$bestlength = 1;
printArray($marker);
echo("Len: $bestlength");
exit(0);
}
for ($j=$i+1; $j<count($arr); $j++) {
$sum += $arr[$j];
$marker[$j]=1;
if ($sum >= $k) {
$curlength = $j-$i+1;
if ($curlength < $bestlength) {
$bestlength = $curlength;
$bestmarker = $marker;
}
}
}
}
if ($bestlength == count($arr)+1) {
echo "No solution";
} else {
printArray($bestmarker);
echo("Len: $bestlength");
}
我在这里遇到两件事我希望你能帮助我
我有$marker = [0,0,0,0,0,0];
我需要一段代码或函数但是首选的代码段可以添加0(除了最后一个之外用','分隔的零)并且它们必须是相同的数量长度为$arr
。
我只能将给定数组的相应项标记为“1”,其他标记为“0”,但实际上我需要输出带有“1”项的标记项,如果你运行代码,你会看到这个输出:“0 0 0 0 1 1 Len:2”但我需要它:“4,3 Len:2”。
我希望你事先得到这个想法!
答案 0 :(得分:0)
我恐怕不能完全理解代码的作用或你想做的事情。你需要处理你的解释(例如&#34;这段代码打印出PHP数组中发现的最长的Mersenne素数序列&#34;或者那样的东西)。
这部分我得到:
我有$ marker = [0,0,0,0,0,0];我需要一段代码或函数,但首选代码片段可以添加0(除了最后一个之外用&#39;,&#39;分隔的零),它们必须与$ arr的长度相同。
你想要
$marker = array_fill(0, count($arr), 0);
但那不是zeroes separated with ","
- 这是 PHP数组。