Re: [閒聊] 每日LeetCode已回收

看板Marginalman作者 (みけねこ的鼻屎)時間2年前 (2023/05/03 15:52), 編輯推噓1(101)
留言2則, 2人參與, 2年前最新討論串309/719 (看更多)
https://leetcode.com/problems/find-the-difference-of-two-arrays/description/ 2215. Find the Difference of Two Arrays 給你兩個陣列分別回傳該兩個陣列與另外一個陣列不同的不重複元素。 Example 1: Input: nums1 = [1,2,3], nums2 = [2,4,6] Output: [[1,3],[4,6]] Explanation: For nums1, nums1[1] = 2 is present at index 0 of nums2, whereas nums1[0] = 1 and nums1[2] = 3 are not present in nums2. Therefore, answer[0] = [1,3]. For nums2, nums2[0] = 2 is present at index 1 of nums1, whereas nums2[1] = 4 and nums2[2] = 6 are not present in nums2. Therefore, answer[1] = [4,6]. Example 2: Input: nums1 = [1,2,3,3], nums2 = [1,1,2,2] Output: [[3],[]] Explanation: For nums1, nums1[2] and nums1[3] are not present in nums2. Since nums1[2] == nums1[3], their value is only included once and answer[0] = [3]. Every integer in nums2 is present in nums1. Therefore, answer[1] = []. 思路: 1.用一個Set紀錄另一個陣列的元素並和當前陣列作比較,如果沒出現在另一個set就加入 結果集。 2.分別做兩次就好。 Java Code: ----------------------------------------------------- class Solution { public List<List<Integer>> findDifference(int[] nums1, int[] nums2) { List<Integer> diff1 = helper(nums1, nums2); List<Integer> diff2 = helper(nums2, nums1); return Arrays.asList(diff1, diff2); } private List<Integer> helper(int[] nums1, int[] nums2) { List<Integer> difference = new ArrayList<>(); Set<Integer> set = new HashSet<>(); for (int num : nums2) { set.add(num); } for (int num : nums1) { if (!set.contains(num)) { set.add(num); difference.add(num); } } return difference; } } ----------------------------------------------------- -- https://i.imgur.com/PIoxddO.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.75.86 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1683100360.A.176.html

05/03 15:53, 2年前 , 1F
大師
05/03 15:53, 1F

05/03 15:56, 2年前 , 2F
大師
05/03 15:56, 2F
文章代碼(AID): #1aKXB85s (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1aKXB85s (Marginalman)