Solution 1
class Solution:
def findDuplicates(self, nums: List[int]) -> List[int]:
res = []
for num in nums:
index = abs(num) - 1
if nums[index] > 0:
nums[index] = - nums[index]
else:
res.append(index+1)
return res
Time complexity is O(n). Space complexity is O(1).