摘要:描述給定兩個(gè)數(shù)組,編寫一個(gè)函數(shù)來計(jì)算它們的交集。示例輸入輸出示例輸入輸出說明輸出結(jié)果中每個(gè)元素出現(xiàn)的次數(shù),應(yīng)與元素在兩個(gè)數(shù)組中出現(xiàn)的次數(shù)一致。我們可以不考慮輸出結(jié)果的順序。思路對(duì)數(shù)組進(jìn)行排序。如果所在的元素大,則向后走一步。
Description
Given two arrays, write a function to compute their intersection.
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2,2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [4,9]
Note:
Each element in the result should appear as many times as it shows in both arrays.
The result can be in any order.
給定兩個(gè)數(shù)組,編寫一個(gè)函數(shù)來計(jì)算它們的交集。
示例 1:
輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2,2]
示例 2:
輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [4,9]
說明:
輸出結(jié)果中每個(gè)元素出現(xiàn)的次數(shù),應(yīng)與元素在兩個(gè)數(shù)組中出現(xiàn)的次數(shù)一致。
我們可以不考慮輸出結(jié)果的順序。
對(duì)數(shù)組進(jìn)行排序。
對(duì)每個(gè)數(shù)組分別用一個(gè)指針 i,j,如果 i,j 指向的元素相等,則將這個(gè)元素放入到結(jié)果數(shù)組中,i, j 同時(shí)向后走一步。
如果 i 所在的元素大,則 j 向后走一步。
如果 j 所在的元素大,則 i 向后走一步。
# -*- coding: utf-8 -*- # @Author: 何睿 # @Create Date: 2019-04-09 16:31:05 # @Last Modified by: 何睿 # @Last Modified time: 2019-04-09 16:43:17 class Solution: def intersect(self, nums1: [int], nums2: [int]) -> [int]: nums1.sort(), nums2.sort() count1, count2 = len(nums1), len(nums2) i, j, res = 0, 0, [] # 相同的部分一定在前面 while i < count1 and j < count2: # 如果相等,添加到結(jié)果數(shù)組中 if nums1[i] == nums2[j]: res.append(nums1[i]) i, j = i + 1, j + 1 # 如果數(shù)組二的數(shù)大,將數(shù)組一的索引自增一次 elif nums1[i] < nums2[j]: i += 1 # 如果數(shù)組一的數(shù)大,將數(shù)組二的索引自增一次 elif nums1[i] > nums2[j]: j += 1 return res
源代碼文件在 這里 。
?本文首發(fā)于 何睿的博客 ,歡迎轉(zhuǎn)載,轉(zhuǎn)載需保留 文章來源 ,作者信息和本聲明.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43551.html
Intersection of Two Arrays I Problem Given two arrays, write a function to compute their intersection. Example Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2]. Note Each element in the result m...
摘要:在線網(wǎng)站地址我的微信公眾號(hào)完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個(gè)題。這是項(xiàng)目地址歡迎一起交流學(xué)習(xí)。 這篇文章記錄我練習(xí)的 LeetCode 題目,語言 JavaScript。 在線網(wǎng)站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號(hào): showImg(htt...
摘要:月下半旬攻略道題,目前已攻略題。目前簡(jiǎn)單難度攻略已經(jīng)到題,所以后面會(huì)調(diào)整自己,在刷算法與數(shù)據(jù)結(jié)構(gòu)的同時(shí),攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區(qū)別...
摘要:先想到的是,其實(shí)也可以,只是需要在遍歷的時(shí)候,添加到數(shù)組中的數(shù)要掉,略微麻煩了一點(diǎn)。在里跑的時(shí)候,也要快一點(diǎn)。另一種類似做法的就快的多了。如果是找出所有包括重復(fù)的截距呢 Problem Given two arrays, write a function to compute their intersection. Notice Each element in the result m...
摘要:題目要求找出兩個(gè)無序數(shù)組中重合的值。先將兩個(gè)數(shù)組分別排序,排序完成之后再用兩個(gè)指針分別比較兩個(gè)數(shù)組的值。如果兩個(gè)指針指向的值相同,則向結(jié)果集中添加該元素并且同時(shí)將兩個(gè)指針向前推進(jìn)。答案是為其中一個(gè)數(shù)組通過建立索引的方式排序。 題目要求 Given two arrays, write a function to compute their intersection. Example: ...
閱讀 1846·2021-09-14 18:03
閱讀 2278·2019-08-30 15:48
閱讀 1135·2019-08-30 14:09
閱讀 518·2019-08-30 12:55
閱讀 2740·2019-08-29 11:29
閱讀 1501·2019-08-26 13:43
閱讀 2325·2019-08-26 13:30
閱讀 2382·2019-08-26 12:17