查找正整数序列中第k大和第k小元素的Python实现
可以使用排序或快速选择算法解决这个问题。以下是 Python 实现,兼顾简洁性与效率: ```python def find_kth_largest_smallest(a, k): if not a or k < 1 or k > len(a): raise ValueError("k must be between 1 and length of array") # 排序后直接索引(适合一般场景,代码清晰) sorted_a = sorted(a) kth_largest = sorted_a[-k] # 第 k 大:从末尾数第 k 个 kth_smallest = sorted_a[k-1] # 第 k 小:从开头数第 k 个(0-indexed) return kth_largest, kth_smallest # 示例用法 a = [3, 2, 1, 5, 6, 4] k = 2 largest, smallest = find_kth_largest_smallest(a, k) print(f"第 {k} 大的元素: {largest}") # 输出: 5 print(f"第 {k} 小的元素: {smallest}") # 输出: 2 ``` ✅ 时间复杂度:`O(n log n)`(排序主导) ✅ 空间复杂度:`O(n)`(创建新排序数组) 如需 `O(n)` 平均时间(不依赖排序),可改用 `quickselect` 实现第 k 小/大,但需注意边界和重复元素处理。需要我提供该优化版本吗? ######[AI问答 | 362点数解答 | 2026-03-29 11:34:34]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)465
- 求解特定条件下整数序列的最小值:算法分析与代码实现(字节豆包 | 746点数解答 | 2026-01-24 13:14:40)58
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)346
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)418
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)412
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)316
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)395
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)419
- Java调用Python接口中文乱码问题:字符编码统一解决方案(讯飞星火 | 344点数解答 | 2024-06-06 17:19:55)530
- 解决Java调用Python接口时中文值乱码问题:设置字符编码为UTF-8(讯飞星火 | 264点数解答 | 2024-06-06 17:27:09)394
- iOS开发揭秘:序列(Sequence)索引是否从0开始?实例为你解答!(百度文心 | 187点数解答 | 2023-11-09 17:44:38)247
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)436