1. 程式人生 > 其它 >刷題-Leetcode-442. 陣列中重複的資料(陣列、雜湊)

刷題-Leetcode-442. 陣列中重複的資料(陣列、雜湊)

技術標籤:刷題leetcode

442. 陣列中重複的資料

題目連結

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/find-all-duplicates-in-an-array

題目描述

給定一個整數陣列 a,其中1 ≤ a[i] ≤ n (n為陣列長度), 其中有些元素出現兩次而其他元素出現一次。

找到所有出現兩次的元素。

你可以不用到任何額外空間並在O(n)時間複雜度內解決這個問題嗎?

示例:

輸入:
[4,3,2,7,8,2,3,1]

輸出:
[2,3]

題目分析

map的基本操作函式
size() 返回map中元素的個數
count() 返回指定元素出現的次數

在這裡插入圖片描述

class Solution {
public:
    vector<int> findDuplicates(vector<int>& nums) {
        vector<int> res;
        map < int, int> mp;
        for (int i = 0; i < nums.size(); i++) {
            if (!mp.count(nums[i])) {
                mp[nums[i]]++;
            }
            else
{ res.push_back(nums[i]); } } return res; } };