1<?php2#
串連珠子問題(類似於關鍵字搜尋)34
function shortest_sub($a, $m
) 14
15$h = 0; #
頭指標16
$t = 0; #
尾指標17
$loop = true;18
while ($loop
) else
2728
#找到了所有顏色,縮減當前子串
29if ($sum == $m
) else
4243
#更新最短子串資訊
44if ($clen
< $blen
) 48
49$sum--; #
減少當前子串出現的顏色總數50}
5152
$color[$a[$h]]--; #
減少當前子串的當前顏色出現次數
53$h++;
5455
if ($h == count($a)) 58}
59}6061
$t++;
6263
#當t到達陣列尾部時,重新回到陣列頭
64if ($t == count($a)) $t = 0;65}
6667
return
array("start" => $bstart, "len" => $blen
);68}69
70$a = array(4, 5, 5, 1, 2, 3);
71$t = shortest_sub($a, 5);
72print_r($t
);73 ?>
解題筆記(29) 珠子問題
問題描述 一串首尾相連的珠子 n個 有n種顏色 n 10 設計乙個演算法,取出其中一段,要求包含所有n種顏色,並使長度最短。並分析時間複雜度與空間複雜度。思路 可以利用一種計數的方法。定義兩個指標p1和p2,主要有三個步驟 1 p1向前移動,如果p1所指的珠子顏色編號為 i 則增加 i 的出現次數。...
電容串聯併聯的問題
電容器併聯時,相當於電極的面積加大,電容量也就加大了。併聯時的總容量為各電容量之和 c並 c1 c2 c3 順便說說電容器的串聯。若三個電容器串聯後外加電壓為u,則u u1 u2 u3 q1 c1 q2 c2 q3 c3,而電荷q1 q2 q3 q,所以q c串 1 c1 1 c2 1 c3 q 1...
小公尺藍芽耳機不能自動串聯問題
針對問題 小公尺藍芽耳機沒辦法串聯 弄了好久才弄好 解決方案一 對單個耳機操作 左耳 長按耳機到關機,長按開機,會聽見響三下 或者紅白交替閃3下 按住不放,又會聽見響三下 或者看見紅白交替閃3下 放入盒子拿出來就自動配對了。右耳 同理 訣竅 分別對單個耳機長時間按住不放就對了 我就是這麼解決的 解決...