LeetCode 问题-从排序数组中删除重复项

问题描述 投票:0回答:1

我想知道为什么我的解决方案在 LeetCode 中显示错误答案?有人可以帮助解决我的解决方案中的问题吗?

public class Solution {
    public int RemoveDuplicates(int[] arr) {
          var dic = new Dictionary<int,int>();
            for (int i = 0; i < arr.Length - 1; i++)
            {

                if (!dic.ContainsKey(arr[i]))
                {
                    dic.Add(arr[i], i);
                }
            }
            if (!dic.ContainsKey(arr[arr.Length-1]))
            {
                dic.Add(arr[arr.Length - 1], dic.Count-1);
            }
            return dic.Count;
    }
}

c# arrays dictionary
1个回答
0
投票

首先,我不熟悉“Leetcode”,但就逻辑而言——>你可以试试这样的东西。使用列表和类似的 for 循环,如果列表不包含方法参数中的数组元素,则添加它。如果它已经包含它,它什么也不做。然后,该方法将列表作为数组返回。

public static int[] RemoveDuplicates(int[] arr)
{
    List<int> nums = new List<int>();
    for (int i = 0; i < arr.Length; i++)
    {
        if (!nums.Contains(arr[i]))
        {
            nums.Add(arr[i]);
        }
    }

    return nums.ToArray();

}

static void Main(string[] args)
{
    int[] nums = { 1, 1, 2 };

    int[] filtered = RemoveDuplicates(nums);

}
© www.soinside.com 2019 - 2024. All rights reserved.