力扣668.乘法表中第k小的数

力扣668.乘法表中第k小的数

  • 二分查找

    • 是否有k个比mid小的数
cpp 复制代码
  class Solution {
  public:
      int findKthNumber(int m, int n, int k) {
          auto check = [&](int mid) -> bool
          {
              int res=0;
              int row = 1,col = n;
              while(row <= m)
              {
                  if(row * col <= mid)
                  {
                      res += col;
                      if(res >= k) return false;
                      row ++;
                  }
                  else col --;
              }
              return true;
          };
          int l = 1,r = n * m;
          while(l<r)
          {
              int mid = l + r + 1 >> 1;
              if(check(mid)) l = mid;
              else r = mid - 1;
          }
          return r + 1;
      }
  };
相关推荐
开发小能手-roy20 分钟前
Java集合框架选型指南:从ArrayList到ConcurrentSkipListMap
java·开发语言
生成论实验室25 分钟前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
Qres82126 分钟前
算法复键——树状数组
数据结构·算法
H1785350909626 分钟前
SolidWorks第四部分_直接实体建模特征9_替换面原理
线性代数·算法·机器学习·3d建模·solidworks
凡人叶枫35 分钟前
Effective C++ 条款41:了解隐式接口和编译期多态
java·开发语言·c++·effective c++
不会就选b39 分钟前
算法日常・每日刷题--<二分查找>3
算法
凡人叶枫40 分钟前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
chushiyunen1 小时前
java中的路径处理、左右斜杠
java·开发语言·python
yyxx4121231 小时前
上海企业如何选择专业的钉钉服务商
java·大数据·人工智能·钉钉
绿算技术1 小时前
Mooncake 与绿算ForinnBase GroundPool如何联手打破推理僵局?
科技·算法·架构