小編給大家分享一下怎么使用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]
說明:
輸出結果中每個元素出現的次數,應與元素在兩個數組中出現的次數一致
我們可以不考慮輸出結果的順序
二、解法
首先把兩個數組都排序,然后兩個數組進行遍歷比較,
當值相等時,兩個數組都往后移動一位,并且相等的那個值加入到 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%
本機測試代碼如下:
# -*- coding:utf-8 -*- nums1 = [1,2,2,1] nums2 = [2,2] 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 print(result)
運行結果:
[2, 2]
以上是“怎么使用Python實現求兩個數組交集的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯成都網站設計公司行業資訊頻道!
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享名稱:怎么使用Python實現求兩個數組交集的方法-創新互聯
本文URL:http://vcdvsql.cn/article46/ddgphg.html
成都網站建設公司_創新互聯,為您提供商城網站、定制開發、微信小程序、電子商務、網站改版、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯