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

pta编程网站网站建设网站备案所需资料

pta编程网站,网站建设网站备案所需资料,wordpress 手机判断,wordpress get_usermeta题目链接 有序矩阵中第 K 小的元素 题目描述 注意点 每行和每列元素均按升序排序找到一个内存复杂度优于 O(n) 的解决方案 解答思路 使用二分查找,思路为: (1)因为左上角的元素值更小,右下角的元素值更大&#xf…

题目链接

有序矩阵中第 K 小的元素

题目描述

注意点

  • 每行和每列元素均按升序排序
  • 找到一个内存复杂度优于 O(n²) 的解决方案

解答思路

  • 使用二分查找,思路为:
    (1)因为左上角的元素值更小,右下角的元素值更大,先将left设置为左上角元素的值,right设置为右下角元素的值;
    (2)判断不大于left和right中间值mid的元素数量sum;
    (3)如果sum小于k,则将left设置为mid + 1,否则将right设置为mid。
  • 不断重复上述过程,直到满足sum等于k时right的最小值,此时left等于right,且right是大于等于矩阵中K个元素的临界点,所以矩阵中一定会有一个元素等于right(否则说明并没有找到sum等于k时right的最小值),right也就是有序矩阵中第 K 小的元素

代码

class Solution {int n;public int kthSmallest(int[][] matrix, int k) {n = matrix.length;int left = matrix[0][0];int right = matrix[n - 1][n - 1];while (left < right) {int mid = left + (right - left) / 2;int sum = countLessThanMid(matrix, mid);if (sum < k) {left = mid + 1;} else {right = mid;}}return left;}public int countLessThanMid(int[][] matrix, int mid) {int sum = 0;for (int i = 0; i < n; i++) {// 如果左上角都大于mid,则一定没有小于等于mid的元素存在if (matrix[i][0] > mid) {return sum;}// 如果右上角都小于等于mid,则该行所有元素都小于等于midif (matrix[i][n - 1] <= mid) {sum += n;continue;}// 其余情况查找改行小于等于mid的元素for (int j = 0; j < n; j++) {if (matrix[i][j] > mid) {break;}sum++;}}return sum;}
}

关键点

  • 二分查找的思路
  • 怎么找到sum等于k时right的最小值
  • 当right - left=1,且两个数都是负数的时候,求mid时会等于right的值,此时如果sum >= k,则会一直卡在循环中无法跳出,需要保证这种特殊情况求mid也是left,所以求mid时使用left + (right - left) / 2
http://www.yayakq.cn/news/246046/

相关文章:

  • 上线后wordpress后台无法登陆网络优化工程师为什么都说坑人
  • 网站 文本编辑器哈尔滨网站推广服务
  • 自考网站建设与管理自媒体有哪些平台
  • 做书籍的网站友情链接检测工具
  • 婚纱网站设计代码html手机h5网站模板下载
  • 净水设备 技术支持 东莞网站建设莱芜在线话题苏春媛
  • 番禺手机网站制作推广网站模板上传到那个目录
  • 高邑网站建设企业网站强制备案
  • 网站建设公司潍坊wordpress 404.php
  • wordpress绑定二级域名插件seo网络优化公司哪家好
  • 无锡高端网站建设咨询厦门小程序开发公司排名
  • 阳江营销网站开发中山专业网站建设公司
  • 专门设计网站的公司叫什么专业做外贸网站的公司
  • 德阳建设银行招聘网站网站建设项目的预算
  • 旌阳区黄河开发建设网站wordpress激活码充值
  • 网站做等级保护国外做的比较好的网站有哪些
  • 福建建设厅网站官网东莞seo建站投放
  • 商业网站策划书范文百度正版下载
  • 成都建设银行网站做网站的软件叫什么软件
  • 网站可以有二维码吗北京vi设计公司有哪些
  • 有没有免费做编辑网站管理系统做文字图片的网站
  • 为企业规划一个网站上海注册公司注册资金
  • 国内外优秀设计网站wordpress建站网
  • 网站版面布局对seo怎么自己做网站挂到百度上
  • 工信部网站备案登录小城镇建设有关网站
  • 微网站 杭州wordpress用户注册后台
  • 3d建模网站公司品牌logo设计
  • 陕西网站设计视频网站建设难吗
  • 免费注册163邮箱网站内部优化策略
  • 手机网站开发公司哪家最专业广西南宁网站设计