我想知道为什么我的解决方案在 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;
}
}
首先,我不熟悉“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);
}