はじめに
今日のアルゴリズムを完成させるプロセスでは、いくつかの必要なモジュールがあります。そのうちの 1 つは、$a 配列が $b 配列のサブセットであるかどうかを判断することです。おそらく、最近さらに C を書いたので、for ループを直接使用しました。実装してみますが、コード量が比較的多く、エレガントさが足りないように感じます。 QQグループでブレインストーミングをした結果、PHPが提供する多くのシステム関数を呼び出せることが分かりましたので、ここに記録しておきます
需要
$a 配列が $b 配列のサブセットであるかどうかを判断するための最小時間計算量
[php]
// $a 配列が $b 配列のサブセットであるかどうかを素早く判断します
$a = 配列(135,138);
$b = 配列(135,138,137);
// $a 配列が $b 配列のサブセットであるかどうかをすばやく判断します
$b = 配列(135,138,137);
実施方法
[php]
$フラグ = 1;
foreach ($a として $va) {
If (in_array($va, $b)) {
続けてください;
}その他{
$フラグ = 0;
休憩
}
}
if ($flag) {
「はい」とエコーします。
}その他{
「いいえ」とエコーします。
}
$フラグ = 1;
foreach ($a として $va) {
If (in_array($va, $b)) {
続けます;
}その他{
休憩;
}
}
if ($flag) {
「はい」をエコーします;
}その他{
「いいえ」をエコーします;
}
array_diff の使用
[php]
$c = array_diff($a, $b); プリント_r($c); $flag = 空($c)?1 : 0;if ($flag) {
「はい」とエコーします。 }その他{
「いいえ」とエコーします。
}
$c = array_diff($a, $b);
print_r($c);
$flag = 空($c)?1 : 0;
if ($flag) {
「はい」をエコーします;
}その他{
「いいえ」をエコーします;
}
array_intersect の使用
コード
[php]
if ($a == array_intersect($a, $b)) {
$フラグ = 1;
}その他{
if ($flag) {
「いいえ」とエコーします。 }
if ($a == array_intersect($a, $b)) {
$flag = 1;
}その他{
$flag = 0;
}
if ($flag) {
「はい」をエコーします;
}その他{
「いいえ」をエコーします;
}
追記
http://www.bkjia.com/PHPjc/477471.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/477471.html
技術記事
まえがき: 今日、アルゴリズムを完成させる過程で、いくつかの必要なモジュールがあります。その 1 つは、$a 配列が $b 配列のサブセットであるかどうかを判断することです。おそらく、C を書いたのは最近なので、単に for を使用しています。それを実装するためのループ...