亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php怎么求兩數組的交集?

發布時間:2020-05-21 11:46:26 來源:億速云 閱讀:232 作者:Leah 欄目:編程語言

php怎么求兩數組的交集?這篇文章運用了實例代碼展示,代碼非常詳細,可供感興趣的小伙伴們參考借鑒,希望對大家有所幫助。

題目:給定兩個數組,編寫一個函數來計算它們的交集。

示例 1:

輸入: nums1 = [1,2,2,1],nums2 = [2,2]

輸出: [2]

示例 2:

輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]

輸出: [9,4]

說明:

輸出結果中的每個元素一定是唯一的。

我們可以不考慮輸出結果的順序。

解法一:迭代一個數組

思路分析:

迭代一個數組,判斷是否存在另外一個數組

PHP 代碼實現:

/**
 * @param Integer[] $nums1
 * @param Integer[] $nums2
 * @return Integer[]
 */
function intersection($nums1, $nums2) {
    $res = [];
    for($i=0;$i<count($nums1);$i++){
        if(in_array($nums1[$i],$nums2)){
            $res[] = $nums1[$i];
        }
    }
    return array_unique($res);
}

使用:

$nums2 = [2,4,6,7,8,99];
$nums1 = [1,2,5,9,9,66,89,90,99,99];
var_dump(intersection($nums1, $nums2));

復雜度分析:

時間復雜度:O(mn)

解法二:內置數組函數

思路分析:

使用array_intersect()函數進行取數組的交集,然后再使用array_unique()去重

PHP 代碼實現:

/**
 * @param Integer[] $nums1
 * @param Integer[] $nums2
 * @return Integer[]
 */
function intersection($nums1, $nums2) {
    return array_unique(array_intersect($nums1,$nums2));
}

使用:

$nums2 = [2,4,6,7,8,99];
$nums1 = [1,2,5,9,9,66,89,90,99,99];
var_dump(intersection($nums1, $nums2));

解法三:暴力解法

思路分析:

先把兩個數組合并為一個數組,再兩次循環遍歷查找

PHP 代碼實現:

/**
 * @param Integer[] $nums1
 * @param Integer[] $nums2
 * @return Integer[]
 */
function intersection($nums1, $nums2) {
    $new_arr = array_merge(array_unique($nums1),array_unique($nums2));
    $res = [];
    for($i=0;$i<count($new_arr);$i++){
        for($j=$i+1;$j<count($new_arr);$j++){
            if($new_arr[$i] == $new_arr[$j]){
                $res[] = $new_arr[$i];
            }
        }
    }
    return array_unique($res);
}

使用:

$nums2 = [2,4,6,7,8,99];
$nums1 = [1,2,5,9,9,66,89,90,99,99];
var_dump(intersection($nums1, $nums2));

復雜度分析:

時間復雜度:O(n^2)

解法四:雙指針

思路分析:

先把兩個數組排序,通過雙指針往前推來進行查找

PHP 代碼實現:

/**
 * @param Integer[] $nums1
 * @param Integer[] $nums2
 * @return Integer[]
 */
function intersection($nums1, $nums2) {
    sort($nums1);
    sort($nums2);
    $i = $j = 0;
    $res = [];
    while($i < count($nums1) && $j < count($nums2)){
        if($nums1[$i] == $nums2[$j]){
            $res[] = $nums1[$i];
            $i++;
            $j++;
        }elseif($nums1[$i] < $nums2[$j]){
            $i++;
        }elseif($nums1[$i] > $nums2[$j]){
            $j++;
        }
    }
    return array_unique($res);
}

使用:

$nums2 = [2,4,6,7,8,99];
$nums1 = [1,2,5,9,9,66,89,90,99,99];
var_dump(intersection($nums1, $nums2));

復雜度分析:

時間復雜度:O(nlogn)

以上就是php求兩數組的交集的方法,代碼詳細清楚,如果在日常工作遇到這個問題,希望你能通過這篇文章解決問題。如果想了解更多相關內容,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

准格尔旗| 濉溪县| 灯塔市| 高邑县| 兴和县| 互助| 定兴县| 千阳县| 湖南省| 华容县| 潼关县| 土默特左旗| 莱阳市| 慈利县| 岗巴县| 临猗县| 宜丰县| 宜城市| 武汉市| 莲花县| 吕梁市| 同仁县| 阿拉尔市| 德钦县| 紫阳县| 重庆市| 加查县| 余江县| 长治市| 孟连| 鄢陵县| 达拉特旗| 潞西市| 青冈县| 清镇市| 博客| 双桥区| 牡丹江市| 大新县| 繁峙县| 冷水江市|