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

算法专题七:分治

快排

1.颜色分类

题目链接:75. 颜色分类 - 力扣(LeetCode)

class Solution {public void swap(int[] nums, int i, int j){int t = nums[i];nums[i] = nums[j];nums[j] = t;}public void sortColors(int[] nums) {int left=-1 ,i=0 ,right=nums.length;while(i<right){if(nums[i] == 0) swap(nums, ++left, i++);else if(nums[i] == 1) i++;else swap(nums, --right, i);}}
}

2.排序数组

题目链接:912. 排序数组 - 力扣(LeetCode) 

排序的规则和颜色分类的思想基本一致

那么key的值如何选择 

class Solution {public int[] sortArray(int[] nums) {int left=0;int right=nums.length-1;qsort(nums,left,right);return nums;}public void qsort(int[] nums,int l,int r){if(l>=r){return;}int key=nums[new Random().nextInt(r-l+1)+l];int left=l-1;int right=r+1;int i=l;while(i<right){if(nums[i]<key){swap(nums,++left,i++);}else if(nums[i]==key){i++;}else{swap(nums,--right,i);}}qsort(nums,l,left);qsort(nums,right,r);}public void swap(int[] nums,int m,int n){int t=nums[m];nums[m]=nums[n];nums[n]=t;}
}

3.数组中第k个最大元素

题目链接:215. 数组中的第K个最大元素 - 力扣(LeetCode)

http://www.xdnf.cn/news/12824.html

相关文章:

  • 【CATIA的二次开发23】抽象对象Document涉及文档激活控制的方法
  • serv00 ssh登录保活脚本-邮件通知版
  • 【构建】CMake 常用函数和命令清单
  • leetcode189-轮转数组
  • Prefix Caching 详解:实现 KV Cache 的跨请求高效复用
  • c++对halcon的动态链接库dll封装及调用(细细讲)
  • 【CSS-8】深入理解CSS选择器权重:掌握样式优先级的关键
  • 【拆机系列】暴力拆解AOC E2270SWN6液晶显示屏
  • Python训练营打卡Day48(2025.6.8)
  • 【LangChain4J】LangChain4J 第三弹:多模态与文生图的实现
  • leetcode_56 合并区间
  • el-table的select回显问题
  • 图解JavaScript原型:原型链及其分析 | JavaScript图解
  • Alight Motion汉化版:视频剪辑,轻松上手
  • odoo17 反常下表引用上表并能修改
  • 在数字工厂实施过程中,如何学会通过梳理流程的思想来分析解决问题
  • 2014-2023年 最新绿色债券数据
  • 大数据CSV导入MySQL
  • word操作(持续更新)
  • 从菜鸟到骑士:TypeScript 基础修炼手册
  • 磁盘空间清道夫FolderSize 系列:可视化分析 + 重复文件识别,
  • 设备健康管理的范式革命:中讯烛龙全链路智能守护系统
  • QTreeWidget 应用场景与用法详解
  • 华为OD机试-食堂供餐-二分法
  • 408第一季 - 数据结构 - 图II
  • MS8551/MS8552/MS8554 单电源、轨到轨输入输出、高精度运放,可替代AD8551/AD8552/AD8554
  • Android 大文件分块上传实战:突破表单数据限制的完整方案
  • 把二级域名绑定的wordpress网站的指定页面
  • 【论文阅读28】-CNN-BiLSTM-Attention-(2024)
  • UML用例模型与用例图