news 2026/4/26 18:13:37

数组中的第K个最大元素

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数组中的第K个最大元素

提示:注意一下本题题意与此处代码的避免差一错误的细节。

class Solution { public: int findKthLargest(vector<int>& nums, int k) { quickSelect(nums, 0, nums.size() - 1, k - 1); return nums[k - 1]; } ​ void quickSelect(vector<int>& arr, const int first, const int last, int k) { if (first >= last) { return; } ​ // (优化)随机取一个数 int randIdx = first + (rand() % (last - first + 1)); swap(arr[randIdx], arr[first]); ​ int left = first; int right = last; int border = arr[left]; while (left < right) { while (left < right && border >= arr[right]) { right += -1; } arr[left] = arr[right]; while (left < right && border <= arr[left]) { left += 1; } arr[right] = arr[left]; } arr[left] = border; ​ // 判断是否满足k个 const int borderIdx = left; // 满足,停止递归 if (borderIdx == k) { return; } // 足够,递归左侧 else if (borderIdx > k) { quickSelect(arr, first, borderIdx - 1, k); } // 不够,递归右侧 else { quickSelect(arr, borderIdx + 1, last, k); } } };

到此我们学习了基于分治思路的快速排序算法,且用随机选点进行了优化,并分析其原理衍生得到了快速选择的方法。

就拿其他同为排序的算法来说,如通过对插入排序的改良有了更强大的希尔排序,又如基于堆排序的思路可以实现出自己的优先队列的数据结构。

所以说只要我们仔细研究各种经典算法本质原理就能衍生更强大的功能!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 18:09:21

在线教育平台中的个性化学习路径推荐

在线教育平台中的个性化学习路径推荐 随着互联网技术的飞速发展&#xff0c;在线教育平台已成为越来越多人获取知识的重要途径。面对海量的学习资源和多样化的学习需求&#xff0c;如何为每位学习者推荐最适合的个性化学习路径&#xff0c;成为提升学习效率的关键。个性化学习…

作者头像 李华
网站建设 2026/4/26 18:05:36

QtScrcpy终极指南:电脑大屏玩转安卓手机的完整教程

QtScrcpy终极指南&#xff1a;电脑大屏玩转安卓手机的完整教程 【免费下载链接】QtScrcpy Android实时投屏软件&#xff0c;此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScrcpy …

作者头像 李华
网站建设 2026/4/26 18:03:49

ANP协议:构建异构AI智能体网络的通信标准与实践指南

1. 项目概述&#xff1a;从单体智能到群体协作的范式跃迁最近几年&#xff0c;AI Agent&#xff08;智能体&#xff09;的概念火得一塌糊涂&#xff0c;从能帮你写代码、查资料的Copilot&#xff0c;到能自主规划、执行复杂任务的AutoGPT&#xff0c;大家似乎都看到了一个由无数…

作者头像 李华
网站建设 2026/4/26 17:58:36

AI应用开发实战:从工具连接到智能体构建的完整指南

1. 项目概述&#xff1a;一个AI时代的“连接器”与“加速器”如果你最近在GitHub上搜索过AI相关的开源项目&#xff0c;大概率会看到一个名字&#xff1a;awesome-a2a。这个由ai-boost组织维护的项目&#xff0c;正迅速成为AI应用开发者和研究者们的一个热门“藏宝图”。它的全…

作者头像 李华