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

全总基层组织建设网站林和西网站建设

全总基层组织建设网站,林和西网站建设,网络营销导向企业网站建设的原则包括,企业营销培训课程给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。 你必须找到一个内存复杂度优于 O(n2) 的解决方案。 示例 1&#xff1…

给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。
请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。

你必须找到一个内存复杂度优于 O(n2) 的解决方案。

示例 1:
输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8
输出:13
解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13

示例 2:
输入:matrix = [[-5]], k = 1
输出:-5
在这里插入图片描述

二分

class Solution {
public:bool check(vector<vector<int>>& matrix, int mid, int k, int n){int i = n - 1;int j = 0;int num = 0;while(i >= 0 && j < n){if(matrix[i][j] <= mid){num += i + 1;j++;}else{i--;}}return k <= num;}int kthSmallest(vector<vector<int>>& matrix, int k) {int n = matrix.size();int left = matrix[0][0];int right = matrix[n-1][n-1];while(left < right){int mid = (left + right) >> 1;if(check(matrix, mid, k, n)){right = mid;}else{left = mid + 1;}}return left;}
};

时间复杂度:O(nlog(r−l)),二分查找进行次数为 O(log(r−l)),每次操作时间复杂度为 O(n)。
空间复杂度:O(1)

在这里插入图片描述

矩阵中最小的元素是matrix[0][0],最大的元素是matrix[n-1][n-1],这道题使用二分查找的思想就是我们从最小数到最大数之间任意挑一个数字作为mid。假设mid = 8,根据图片,矩阵可以分成两个部分,一个部分全部小于等于8,另外一个部分全部大于8。我们可以统计左上部分小于等于8的数的数量,看8在排序后是第几小的数(因为图片有多个8,所以返回的是8是第几小的数的最大情况,即升序排列中最右边的8的位置)。

所以在二分查找中,我们从取left + right除以2的值为mid,如果在check函数中得出来左上部分的数量大于等于我们所期待的k,那么就说明我们的取的mid大于等于实际元素,这时候我们就将right = mid,缩小他的上界。如果左上部分数量小于我们所期待的k,说明我们取的mid比实际元素要小,我们令left = mid + 1,增加他的下界。

很多人会疑问left怎么确保一定是矩阵中的数?

如题解中所说,如果 num >= k,那么说明最终答案 x <= mid;如果 num < k,那么说明最终答案 x > mid。 在最后一次迭代时,check返回的结果为false,即 num < k,说明 x > mid,又因为 x <= right。当 left = mid + 1 后,left >= righ,while循环结束。此时有 mid < x <= right <= left = mid + 1,即 mid < x <= mid + 1。可得 x = mid + 1 = left。

http://www.yayakq.cn/news/921703/

相关文章:

  • 做qq空间动态皮肤网站服务器上的网站怎么做301
  • 国家优质校建设网站电子商务网站实例
  • 给人做设计的网站wordpress 调取侧边栏
  • 河北建设工程信息网站广州网站建设咨询电话
  • 制作网站的设计难点葫芦岛建设工程信息网站
  • 旅游网站规划方案视觉中国官网
  • 门户类网站是什么意思毕设电商网站设计
  • 网站制作珠海公司网站建设多久能学会
  • 学生个人网站建设方案书框架栏目蛋糕 网站 模板
  • 空间网站购买上海家居网站建设
  • 自己随便玩玩的网站怎么建设石景山广州网站建设
  • 上海中学门户网站英德网站建设
  • 建设注册管理中心网站铜陵网站制作公司
  • cnetos 做网站服务制作ppt的软件app
  • 推广网站实例wordpress流量统计
  • 广州专业网站建设性价比高网站模板用什么软件做
  • 网站推广是网站建设完成之后的长期工作。网上商城系统模板
  • 重庆智能网站建设公司全国网站建设
  • 绍兴建站服务雅安公司做网站
  • 门户网站建设管理淘宝运营多少钱一个月
  • 东阳网站建设价格wordpress装主题需要ftp
  • 退工在那个网站上做一般网站可以自己做商城吗
  • 茶陵网站建设全国一体化在线政务服务平台
  • 如何利用fortran语言建设网站专业网站建设质量推荐
  • 郑州的建设网站有哪些济南建站公司网站
  • python做网站实例公司注册流程及注意事项及细节
  • 西安网站建设哪家比较好食品饮料网站建设
  • 做网站排名seowordpress 简单幻灯片插件
  • 建设网站广州深圳松岗 网站建设
  • 网站开发市场分析东莞网页设计教程