力扣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;
      }
  };
相关推荐
霑潇雨14 小时前
Spark学习基础转换算子案例(单词计数(WordCount))
java·大数据·分布式·学习·spark·maven
夏日听雨眠14 小时前
Linux(信号,管道,共享内存)
java·服务器·网络
TANGLONG22214 小时前
【C++】继承详解——基类/派生类、作用域、默认函数、菱形继承(超详细)
java·c语言·c++·经验分享·笔记·ajax
洛水水14 小时前
【力扣100题】38.路径总和 III
算法·leetcode·深度优先
zmsofts14 小时前
IntelliJ IDEA)因为内存不足而崩溃
java·ide·intellij-idea
小侯不躺平.14 小时前
C++ Boost库【2】 --stringalgo字符串算法
linux·c++·算法
Dlrb121114 小时前
C语言-字符串指针与函数指针
java·c语言·前端
萝卜白菜。14 小时前
通过cmdline-jmxclient.jar采集TongWeb8.0监控值
java·jar
流年如夢14 小时前
二叉树详解
c语言·数据结构·算法
最后一支迷迭香14 小时前
苹果的MacOS系统适合做Java开发吗
java·开发语言·macos