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

wordpress中collapse网络seo软件

wordpress中collapse,网络seo软件,今日猪价最新走势价格,企业建立网站账户如何做我本人是非科班学 C 后端和嵌入式的。在我面试的过程中,竟然得到了阿里​ C 研发工程师的面试机会。因为,阿里主要是用 Java 比较多,C 的岗位比较少​,所以感觉这个机会还是挺难得的。 阿里 C 研发工程师面试考了我一道类似于快速…

我本人是非科班学 C++ 后端和嵌入式的。在我面试的过程中,竟然得到了阿里​ C++ 研发工程师的面试机会。因为,阿里主要是用 Java 比较多,C++ 的岗位比较少​,所以感觉这个机会还是挺难得的。

阿里 C++ 研发工程师面试考了我一道类似于快速排序算法的算法题,虽然我算法题又一次没做出来然后面试挂了。

题目描述:

题号:215

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

解题思路:

思路一:快排变体(快速选择)

快速选择算法,这是快速排序算法的一种变种。快速选择算法可以在平均情况下以O(n)的时间复杂度找到数组中的第k个最小(或最大)元素。

步骤如下:

  1. 选择一个基准元素:我们可以随机选择一个元素作为基准,或者选择数组的第一个、最后一个或中间的元素。

  2. 分区:根据基准元素对数组进行分区,使得所有小于基准的元素都在基准的左边,所有大于基准的元素都在基准的右边。

  3. 判断基准元素的位置:如果基准元素正好是第k个最大的元素(从0开始计数),则直接返回该元素。如果基准元素的位置大于k,则在基准的左边部分继续寻找;如果基准元素的位置小于k,则在基准的右边部分继续寻找,并调整k的值。

  4. 递归:在选定的部分中重复上述步骤,直到找到第k个最大的元素。

时间复杂度:O(N) 

空间复杂度:O(log N)

C++

// C++
class Solution {
public:int quickselect(vector<int> &nums, int l, int r, int k) {if (l == r)return nums[k];int partition = nums[l], i = l - 1, j = r + 1;while (i < j) {do i++; while (nums[i] < partition);do j--; while (nums[j] > partition);if (i < j)swap(nums[i], nums[j]);}if (k <= j)return quickselect(nums, l, j, k);else return quickselect(nums, j + 1, r, k);}
​int findKthLargest(vector<int> &nums, int k) {int n = nums.size();return quickselect(nums, 0, n - 1, n - k);}
};

go

// go
func findKthLargest(nums []int, k int) int {n := len(nums)return quickselect(nums, 0, n - 1, n - k)
}
​
func quickselect(nums []int, l, r, k int) int{if (l == r){return nums[k]}partition := nums[l]i := l - 1j := r + 1for (i < j) {for i++;nums[i]<partition;i++{}for j--;nums[j]>partition;j--{}if (i < j) {nums[i],nums[j]=nums[j],nums[i]}}if (k <= j){return quickselect(nums, l, j, k)}else{return quickselect(nums, j + 1, r, k)}
}

http://www.hrbkazy.com/news/45841.html

相关文章:

  • 免费商城网站建设东莞优化怎么做seo
  • phpstudy网站建设教程怎样自己做网站
  • 织梦网站熊掌号改造怎么做优秀品牌策划方案
  • 做网站好多钱门户网站排行榜
  • 网站域名迁移公告怎么制作一个自己的网站
  • 南阳企业网站建设公司seo1域名查询
  • 温州网站推广价钱爱站小工具计算器
  • 厦门做外贸网站优化网站软文
  • 廊坊市建设局网站发布推广信息的网站
  • 论坛申请网站备案前置审批百度网盘app官方下载
  • 用个人电脑做网站服务器查看浏览过的历史记录百度
  • 杭州滨江网站建设公司郑州seo关键词自然排名工具
  • 织梦网站织梦做英文版的交换链接是什么
  • 温州网站建设服务电子商务网络公司seo代码优化有哪些方法
  • 在线写代码的网站电商培训学校
  • 网站日常更新谁做自助建站官网
  • 网店运营教学windows优化大师和360哪个好
  • 网站开发流程asp营销型网站seo
  • 西安网站设设青岛seo杭州厂商
  • ImQQ网站是怎么做的哪里有学电脑培训班
  • 网站建设营销方案360优化大师旧版本
  • 外贸网站是公司才能进去吗代写文章价格表
  • 怎么在.Net中做团购网站百度推广培训班
  • 宁波建设银行网站分部石家庄关键词优化平台
  • 效果图网站接单软件关键词排名
  • 网站建设怎样核算免费网站推广网站破解版
  • 深圳西乡网站建设关键词排名优化流程
  • 平面设计套用模板网站北京seo优化外包
  • 用asp.net做购物车网站刷关键词排名软件有用吗
  • 微网站的链接怎么做的武汉seo网站优化