力扣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;
      }
  };
相关推荐
期末考复习中,蓝桥杯都没时间学了几秒前
力扣刷题15
算法·leetcode·职场和发展
码农阿豪6 分钟前
Oracle 到金仓数据库迁移实战:一次真正“落地”的国产替代之旅
java·数据库·oracle
2301_817497336 分钟前
C++中的装饰器模式高级应用
开发语言·c++·算法
m0_5494166610 分钟前
C++编译期字符串处理
开发语言·c++·算法
m0_5811241910 分钟前
C++中的适配器模式实战
开发语言·c++·算法
A尘埃15 分钟前
零售连锁店生鲜品类销量预测——线性回归(Linear Regression)
算法·线性回归·零售
小王不爱笑13226 分钟前
SpringBoot 整合 Ollama + 本地 DeepSeek 模型
java·spring boot·后端
毕设源码-钟学长26 分钟前
【开题答辩全过程】以 高校宿舍分配系统设计与实现为例,包含答辩的问题和答案
java
何中应27 分钟前
IDEA 中让 Git 忽略 .idea 目录
java·git·intellij-idea
無森~28 分钟前
HBase优化面试题
java·面试·hbase