c#题例-2025-09-01 22:33:30
日期: 2025-09-01 分类: AI写作 8次阅读
请实现一个高效的函数 `FindKthLargest`,用于在**未排序的整数数组**中查找**第 k 大的元素**(从 1 开始计数,k ≥ 1),并分析其时间复杂度。要求不使用系统内置排序函数或堆结构(如 `Sort()`、`SortedSet`、`PriorityQueue` 等),仅通过手动实现算法逻辑完成。
函数签名如下:
```csharp
int FindKthLargest(int[] nums, int k)
```
**附加要求:**
- 如果数组中有重复元素,应**合并处理**,即重复元素视为同一大小。
- 若 k 超过数组中**不同元素的数量**,则返回 `-1` 表示无效输入。
**示例输入:**
```csharp
int[] nums = {3, 2, 1, 5, 6, 4, 5, 6};
int k = 3;
```
**预期输出:**
```csharp
4
```
**请写出完整实现代码并解释其逻辑流程与时间复杂度。**
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:AI写作
精华推荐