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

怎么制作网站生成图片土巴兔网站开发方案

怎么制作网站生成图片,土巴兔网站开发方案,规范12388举报网站建设管理,手机版自适应网站怎么做目录 快速选择算法#xff08;medium#xff09; 题目解析 讲解算法原理 编写代码 最⼩的k个数#xff08;medium#xff09; 题目解析 讲解算法原理 编写代码 快速选择算法#xff08;medium#xff09; 题目解析 1.题目链接#xff1a;. - 力扣#xff08;L…目录 快速选择算法medium 题目解析 讲解算法原理 编写代码 最⼩的k个数medium 题目解析 讲解算法原理 编写代码 快速选择算法medium 题目解析 1.题目链接. - 力扣LeetCode 2.题目描述 给定整数数组nums和整数k请返回数组中第k个最⼤的元素。 请注意你需要找的是数组排序后的第k个最⼤的元素⽽不是第k个不同的元素。 你必须设计并实现时间复杂度为O(n)的算法解决此问题。 ⽰例1: 输⼊:[3,2,1,5,6,4],k2 输出:5 ⽰例2: 输⼊:[3,2,3,1,2,4,5,5,6],k4 输出:4 提⽰ 1knums.length10^5 -10^4nums[i]10^4 讲解算法原理 解法快速选择算法 算法思路 在快排中当我们把数组「分成三块」之后 [l, left] [left 1, right - 1] [right, r] 我们可以通过计算每⼀个区间内元素的「个数」进⽽推断出我们要找的元素是在「哪⼀个区间」⾥⾯。 那么我们可以直接去「相应的区间」去寻找最终结果就好了。 编写代码 c算法代码 class Solution { public:int findKthLargest(vectorint nums, int k) {srand(time(NULL));return qsort(nums, 0, nums.size() - 1, k);}int qsort(vectorint nums, int l, int r, int k){if(l r) return nums[l];// 1. 随机选择基准元素int key getRandom(nums, l, r);// 2. 根据基准元素将数组分三块int left l - 1, right r 1, i l;while(i right){if(nums[i] key) swap(nums[left], nums[i]);else if(nums[i] key) i;else swap(nums[--right], nums[i]);}// 3. 分情况讨论int c r - right 1, b right - left - 1;if(c k) return qsort(nums, right, r, k);else if(b c k) return key;else return qsort(nums, l, left, k - b - c);}int getRandom(vectorint nums, int left, int right){return nums[rand() % (right - left 1) left];} }; java算法代码 class Solution {public int findKthLargest(int[] nums, int k) {return qsort(nums, 0, nums.length - 1, k);}public int qsort(int[] nums, int l, int r, int k) {if(l r) {return nums[l];}// 1. 按照随机选择的基准元素将数组分三块int key nums[new Random().nextInt(r - l 1) l];int left l - 1, right r 1, i l;while(i right) {if(nums[i] key) swap(nums, left, i);else if(nums[i] key) i;else swap(nums, --right, i);}// 2. 分情况讨论int c r - right 1, b right - left - 1;if(c k) return qsort(nums, right, r, k);else if(c b k) return key;else return qsort(nums, l, left, k - b - c);}public void swap(int[] nums, int i, int j) {int t nums[i];nums[i] nums[j];nums[j] t;} } 最⼩的k个数medium 题目解析 1.题目链接. - 力扣LeetCode 2.题目描述 输⼊整数数组arr找出其中最⼩的k个数。例如输⼊4、5、1、6、2、7、3、8这8个数字则最⼩的4个数字是1、2、3、4。 ⽰例1 输⼊arr[3,2,1],k2 输出[1,2]或者[2,1] ⽰例2 输⼊arr[0,1,2,1],k1 输出[0] 限制 0karr.length10000 0arr[i]10000 讲解算法原理 解法快速选择算法 算法思路 在快排中当我们把数组「分成三块」之后 [l, left] [left 1, right - 1] [right, r] 我们可以通过计算每⼀个区间内元素的「个数」进⽽推断出最⼩的k个数在哪些区间⾥⾯。 那么我们可以直接去「相应的区间」继续划分数组即可。 编写代码 c算法代码 class Solution { public:vectorint getLeastNumbers(vectorint nums, int k) {srand(time(NULL));qsort(nums, 0, nums.size() - 1, k);return {nums.begin(), nums.begin() k};}void qsort(vectorint nums, int l, int r, int k){if(l r) return;// 1. 随机选择⼀个基准元素 数组分三块int key getRandom(nums, l, r);int left l - 1, right r 1, i l;while(i right){if(nums[i] key) swap(nums[left], nums[i]);else if(nums[i] key) i;else swap(nums[--right], nums[i]);}// [l, left][left 1, right - 1] [right, r]// 2. 分情况讨论int a left - l 1, b right - left - 1;if(a k) qsort(nums, l, left, k);else if(a b k) return;else qsort(nums, right, r, k - a - b);}int getRandom(vectorint nums, int l, int r){return nums[rand() % (r - l 1) l];} }; java算法代码 class Solution {public int[] getLeastNumbers(int[] nums, int k) {qsort(nums, 0, nums.length - 1, k);int[] ret new int[k];for(int i 0; i k; i)ret[i] nums[i];return ret;}public void qsort(int[] nums, int l, int r, int k){if(l r) return;// 1. 随机选择⼀个基准元素 数组分三块int key nums[new Random().nextInt(r - l 1) l];int left l - 1, right r 1, i l;while(i right){if(nums[i] key) swap(nums, left, i);else if(nums[i] key) i;else swap(nums, --right, i);}// 2. 分类讨论int a left - l 1, b right - left - 1;if(a k) qsort(nums, l, left, k);else if(a b k) return;else qsort(nums, right, r, k - a - b);}public void swap(int[] nums, int i, int j){int t nums[i];nums[i] nums[j];nums[j] t;} }
http://www.dnsts.com.cn/news/55390.html

相关文章:

  • 邳州哪家做百度推广网站wordpress打造cms
  • 免费微网站开发中小企业网站建设与管理课件百度云
  • 谁家做电商商城网站便宜平湖手机网站设计
  • 建设工程人员锁定网站wordpress固定链接设置文章连续性
  • 企业怎么建设自己的网站中国东盟建设集团有限公司网站
  • 凡客诚品官方网上海seo网站建设
  • 江阴市建设局网站管理通道建站软件免费模板
  • 兄弟网站制作推进门户网站建设工作会议
  • 竹子建站免费版北京建设学院网站
  • 我要建网站需要什么ip提取网站源码带后台
  • 网站目录做301新闻发稿计划
  • 制作网站要步骤制作人韩剧
  • app和微网站的区别网站建设要学会什么
  • 网站发布小说封面怎么做网站制作 技术
  • 新媒体与网站建设app软件开发平台游戏
  • 做视频网站空间要多大免费申请流量卡
  • 纺织面料做哪个网站好个人网页设计作品html
  • 路由器通过域名解析做网站无忧企业网站管理系统
  • 东莞市网站seo内容优化网站自动加水印
  • 建设银行网站介绍免费做公众号的网站
  • 大兴网站开发贵阳app开发公司排名
  • 如何建立公司网站建议和规则新类型 网站
  • 如何自己注册网站铜川建设网站
  • 做平面的素材网站安徽建设工程安全监督总站网站
  • 做家政网站公司wordpress变成中文
  • 门户网站建设 必要性少儿编程课程
  • 专业苏州网站建设网站建设设计平台
  • 代理游戏网站旅游网站开发的需求分析
  • 东莞培训网站建设wordpress生成封面分享
  • 公司备案网站名称全国工商网注册查询网