力扣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;
      }
  };
相关推荐
凤山老林8 分钟前
SpringBoot + Configuration2 实现配置的实时双向更新
java·spring boot·后端
2601_963869952 小时前
【计算机毕业设计】基于 Spring Boot+Vue的手工体验馆管理系统的设计与实现
java·spring boot·后端
曹牧2 小时前
Java:BeanListHandler
java·数据库·oracle
白鸽(二般)9 小时前
MinIO Java Client API
java·开发语言
普通攻击往后拉10 小时前
Leetcode 206. 反转链表
算法·leetcode·链表
软萌萌的110 小时前
Java Spring Boot 修改yml配置&加载顺序规则
java·spring boot·python
@syh.10 小时前
【贪心】矩阵消除游戏
算法·游戏·矩阵
IT小盘10 小时前
13-企业Prompt模板-角色任务约束与输出格式
java·前端·prompt
爱敲键盘的猴子11 小时前
Java并发编程 -- volatile
java·java并发
可编程芯片开发11 小时前
基于零极点配置的PID控制系统simulink建模与仿真
算法