PHP判斷兩個有序數組中是否存在相同的數字範例程式碼分析

黄舟
發布: 2023-03-06 18:06:01
原創
1345 人瀏覽過

PHP判斷兩個有序陣列中是否存在相同的數字範例程式碼分析

#
<?php
$len1 = sizeof($arr1);
$len2 = sizeof($arr2);

$flag = false; //用来退出外层循环
$start = 0;
$counter = 0;

for($i = 0; $i < $len1; $i++) {
	if($flag) {
		break;
	}
	
	// $start 记录上次循环到的索引
	for($j = $start; $j < $len2; $j++) {
		if($arr2[$j] == $arr1[$i]) {
			echo &#39;find, &#39;, $arr2[$j];
			$flag = true;
			break;
		}

		// 用 $counter 来控制次数,当前内循环中仅记录一次
		if($arr2[$j] > $arr1[$i] && $counter == 0) {
			$start = $j;
			$counter++;
		}
	}

	$counter = 0; //下一次循环开始,重置为0
}
登入後複製

方法二:

想法:先設兩個下標,分別初始化為兩個陣列的起始位址,依序向前推進。推進的規則是比較兩個數組中的數字,小的那個數組的下標向前推進一步,直到任何一個數組的下標到達​​數組末尾時,如果這時還沒碰到相同的數字,說明數組中沒有相同的數字。

<?php
$i = $j = 0;
$len1 = count($arr1);
$len2 = count($arr2);
while($i < $len1 && $j < $len2) {
	if($arr1[$i] == $arr2[$j]) {
		echo &#39;find, &#39;, $arr1[$i];
		break;
	}
	
	if($arr1[$i] > $arr2[$j]) {
		$j ++;
	}
	else {
		$i ++;
	}
}
登入後複製

以上是PHP判斷兩個有序數組中是否存在相同的數字範例程式碼分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!