[LeetCode]Find All Duplicates in an Array

[LeetCode]Find All Duplicates in an Array

有一个不允许使用额外空间同时要在O(n)复杂度解决的要求
那就每找到一个数字,就把这个数字位置的数字置为负数。

    public class Solution
    {
        public IList<int> FindDuplicates(int[] nums)
        {
            IList<int> ans = new List<int>();
            for (int i = 0; i < nums.Length; i++)
            {
                int index = Math.Abs(nums[i]) - 1;
                if (nums[index] < 0)
                    ans.Add(Math.Abs(index + 1));
                nums[index] = -nums[index];
            }
            return ans;
        }
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注