当前位置: 首页 > news >正文

leetcode寻找第k大的值

寻找第k大的值

题目链接:![https://leetcode.cn/problems/kth-largest-element-in-an-array/]

解题思路:该题对时间复杂度要求较高,对整个数组进行排序之后再求解在时间上划不来。只要使得数组局部有序即可。这里采用快速排序的方法找到第k大的元素。

class Solution {
public://划分的过程,采用挖坑法进行划分static int partition(std::vector<int>& nums, int beg, int end) {int pivot = nums[beg];while (beg < end) {while (beg < end && nums[end] > pivot)end--;if (beg < end)nums[beg++] = nums[end];while (beg < end && nums[beg] <= pivot)beg++;if (beg < end)nums[end--] = nums[beg];}nums[beg] = pivot;return beg;}static void quickSort(std::vector<int>& nums, int beg, int end, int k) {if (beg < end) {int mid = partition(nums, beg, end);if (mid == k) //检查基准元素的下标以决定向哪边二分return;else if (mid > k)return quickSort(nums, beg, mid - 1, k);elsereturn quickSort(nums, mid + 1, end, k);}}int findKthLargest(std::vector<int>& nums, int k) {quickSort(nums, 0, nums.size() - 1, nums.size() - k);return nums[nums.size() - k];}
};
http://www.dtcms.com/a/613589.html

相关文章:

  • 瑞安外贸网站制作php做网站都需要学什么软件
  • 企业级 Spring Boot + WebSocket + Redis 分布式消息推送方案
  • 线性代数 · SVD | 从线性代数到数据科学的“盛大”应用(scr:bzv)
  • 专门做推广的网站吗做当地门户网站多少钱
  • 【Java Web学习 | 第12篇】JavaScript(6)DOM
  • VVIC item_search 接口对接全攻略:从入门到精通
  • 四川住建厅官方网站的网址北京专业建设
  • 网站开发实训课程的总结手机网游
  • 《道德经》第五十八章
  • 【面试经验】梅赛德斯奔驰X-Seed AI Systems - Autonomous Driving Agent Efficiency
  • MATLAB基于CNN和DE-NSGAIII的齿盘切削参数优化
  • Node.js+Vue的学习笔记
  • 哪些网站设计的好嘉兴互联网公司
  • GM-3568JHF丨ARM+FPGA异构开发板系列教程:基础入门 1- 开发环境搭建
  • 从括号匹配到字符串解码:递归思想的巧妙应用
  • 第7章 Node框架实战篇 - Express 中间件与RESTful API 接口规范
  • 编译器用什么语言开发 | 深入探讨编译器开发的语言选择及其影响
  • 实战内网PTH上线域控
  • 基于YOLOv5-AUX的棕熊目标检测与识别系统实现
  • 东北网站建设国网典型设计最新版
  • 白酒网站设计广告设计与制作教程
  • 建设文明网站包括个人网站学生作业
  • 面对AI的思考,如何区分什么能力是人最根本的能力?
  • 当“能者”不再“多劳”:于倦怠深处,寻一方从容
  • 分布式系统测试包含子系统的系统测试,数据一致性测试,并发测试
  • less 工具 OpenHarmony PC适配实践
  • 人工智能之数据分析 numpy:第三章 Ndarray 对象和数组创建
  • Claude Code API Gateway 配置指南
  • 网站怎么做404 301深圳网站论坛建设
  • 网站后台m整套网站设计