1. 程式人生 > >350. 兩個陣列的交集 II-Python-LeetCode

350. 兩個陣列的交集 II-Python-LeetCode

一、題目

給定兩個陣列,編寫一個函式來計算它們的交集。

例1:

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

例2:

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

說明:

  • 輸出結果中每個元素出現的次數,應與元素在兩個陣列中出現的次數一致
  • 我們可以不考慮輸出結果的順序

二、解法

首先把兩個陣列都排序,然後兩個陣列進行遍歷比較,
當值相等時,兩個陣列都往後移動一位,並且相等的那個值加入到 result 陣列中
當值不相等時,值小的陣列往後移動一位(因為我們已經排序過了,如果是值大的陣列往後移動一位,那麼肯定還是比值小的要大)

程式碼如下:

nums1.sort()
nums2.sort()
result = []
i, j = 0, 0
while i<len(nums1) and j<len(nums2):
    if nums1[i]==nums2[j]:
        result.append(nums1[i])
        i += 1
        j += 1
    elif nums1[i]>nums2[j]:
        j += 1
    elif nums1[i]<nums2[j]:
        i += 1
return result

時間 52ms,擊敗了 93%

結語

歡迎關注我的公眾號 瘋子的Python筆記

公眾號二維碼.jpg

相關推薦

350. 陣列交集 II-Python-LeetCode

一、題目 二、解法 結語 一、題目 給定兩個陣列,編寫一個函式來計算它們的交集。 例1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 例2:

leetcode 350. 陣列交集 II python

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4

LeetCode350. 陣列交集 II

1.題目 給定兩個陣列,編寫一個函式來計算它們的交集。 2.思路 此題對第一題的區別在於可以輸出相同數字 例如:輸入【1,2,2,1】,【2,2】;輸出【2,2】 step1:遍歷兩個向量; step2:把兩個陣列重複的元素加入到vector res中(可以

Leetcode 350.陣列交集|| By Python

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9] 說明: 輸出結果中每個元素

LeetCode350. 陣列交集 II

運用的知識:  對映    。              參考:自定義對映(Map)   題目描述: 給

350. 陣列交集 IIpython

一. 題目 給定兩個陣列,寫一個方法來計算它們的交集。 例如: 給定nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]. 注意:   輸出結果中每個元素出現的次數,應與元素在兩個陣列中出現的次數一致。    我們可以不考慮

LeetCode 350. 陣列交集 II

給定兩個陣列,寫一個方法來計算它們的交集。例如:給定nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意:  輸出結果中每個元素出現的次數,應與元素在兩個陣列中出現的次數一致。   我們可以不考慮輸出結果的順序。跟進:如果給定的

Leetcode】【簡單】【350. 陣列交集 II】【JavaScript】

題目描述 350. 兩個陣列的交集 II 給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2]輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]輸出: [4,9] 說明

350. 陣列交集 II

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9]

LeetCode陣列-350.陣列交集||

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,

350.陣列交集II

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9]

350. 陣列交集

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9]

leetcode349:陣列交集

思想: 題目要求給定兩個陣列,編寫一個函式來計算它們的交集。 1.定義變數ans儲存兩個陣列的交集 2.將nums1和nums2去重 3.判斷nums1中的元素num是否在nums2中,若在則新增ans中,不在則繼續for迴圈 class Solution(object):

LeetCode350. Intersection of Two Arrays II陣列交集 II)-map實現

問題描述: 實現程式碼:. #include <iostream> #include <vector> #include <map> using namespace std; // 時間複雜度: O(nlogn) // 空間複雜

LeetCode題目-- 陣列交集 IIpython實現)

題目 給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: num

LeetCode刷題記錄——第350題(陣列交集 II

題目描述 給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,

Leetcode刷題(python)之 陣列交集 II

給定兩個陣列,寫一個方法來計算它們的交集。例如:給定nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意:  輸出結果中每個元素出現的次數,應與元素在兩個陣列中出現的次數一致。   我們可以不考慮輸出結果的順序。跟進:如果給定的

[LeetCode]陣列交集 II

[LeetCode]兩個陣列的交集 II 給定兩個陣列,寫一個方法來計算它們的交集。 例如: 給定* ***nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]. 注意: * * 輸出結果中每個元素出現的次數,應與

Leetcode 陣列交集 II(c++)

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9] 說明:

C++ Leetcode初級演算法之陣列交集 II

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9] 說明: 輸