1. 程式人生 > >python leetcode 442. Find All Duplicates in an Array

python leetcode 442. Find All Duplicates in an Array

一開始的想法是用異或來做 但看到了Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array)這個條件
意味著我們可以在原來的陣列上操作設定標誌位(因為所給的整數不會超出陣列長度即最壞的情況都能一一對應)

class Solution:
    def findDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        res=[]
        for n in nums:
            index=abs(n)-1
            if nums[index]<0:
                res.append(index+1)
            nums[index]=-nums[index]
        return res