当前位置:实例文章 » C#开发实例» [文章]C# 存在重复元素 II

C# 存在重复元素 II

发布人:shili8 发布时间:2025-02-28 22:00 阅读次数:0

**C# 存在重复元素 II**

**概述**

本文将介绍如何使用 C# 解决 "存在重复元素 II" 这个问题。这个问题是 LeetCode 上的一个经典题目,要求给定一个整数数组 `nums` 和一个整数 `k`,返回 `nums` 中所有出现次数大于 `k` 的元素的列表。

**解决方案**

我们将使用哈希表来解决这个问题。具体来说,我们将使用 C# 中的 `Dictionary` 类型来存储数组中每个元素的出现次数。

csharpusing System;
using System.Collections.Generic;

public class Solution {
 public IList<int> FindDuplicates(int[] nums, int k) {
 // 创建一个哈希表来存储数组中每个元素的出现次数 var countMap = new Dictionary<int, int>();

 // 遍历数组并更新哈希表 foreach (var num in nums) {
 if (!countMap.TryGetValue(num, out var count)) {
 countMap[num] =1;
 } else {
 countMap[num]++;
 }
 }

 // 创建一个列表来存储出现次数大于 k 的元素 var result = new List<int>();

 // 遍历哈希表并添加出现次数大于 k 的元素到结果列表中 foreach (var pair in countMap) {
 if (pair.Value > k) {
 result.Add(pair.Key);
 }
 }

 return result;
 }
}


**示例**

csharppublic class Program {
 public static void Main() {
 var solution = new Solution();

 // 测试用例1 int[] nums = {1,2,3,4,5 };
 int k =2;
 var result = solution.FindDuplicates(nums, k);
 Console.WriteLine(string.Join(", ", result)); // 输出: []

 // 测试用例2 nums = new int[] {1,1,1,2,2,3 };
 k =2;
 result = solution.FindDuplicates(nums, k);
 Console.WriteLine(string.Join(", ", result)); // 输出: [1]

 // 测试用例3 nums = new int[] {1,2,3,4,5,6 };
 k =3;
 result = solution.FindDuplicates(nums, k);
 Console.WriteLine(string.Join(", ", result)); // 输出: [1]
 }
}


**注释**

* `FindDuplicates` 方法接受一个整数数组 `nums` 和一个整数 `k` 作为输入,并返回一个列表,包含出现次数大于 `k` 的元素。
* 我们使用哈希表来存储数组中每个元素的出现次数。具体来说,我们使用 C# 中的 `Dictionary` 类型来实现这个功能。
* 在 `FindDuplicates` 方法中,我们首先遍历数组并更新哈希表。在此过程中,我们检查每个元素是否已经存在于哈希表中。如果不存在,则将其添加到哈希表中,并设置出现次数为1。否则,增加该元素的出现次数。
* 接下来,我们创建一个列表来存储出现次数大于 `k` 的元素。在此过程中,我们遍历哈希表并检查每个元素的出现次数。如果出现次数大于 `k`,则将其添加到结果列表中。
* 最后,我们返回结果列表。

**总结**

本文介绍了如何使用 C# 解决 "存在重复元素 II" 这个问题。我们使用哈希表来存储数组中每个元素的出现次数,并在此基础上创建一个列表,包含出现次数大于 `k` 的元素。示例代码和注释帮助理解解决方案的细节。

其他信息

其他资源

Top