力扣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;
      }
  };
相关推荐
nlpming7 分钟前
opencode Agent 详解
算法
江南十四行11 分钟前
排序算法进阶:直接插入排序(简单排序)与希尔排序
数据结构·算法·排序算法
nlpming11 分钟前
opencode System Prompt 构建机制 & AGENTS.md注入机制
算法
nlpming12 分钟前
opencode - 安装和配置
算法
咸鱼2.013 分钟前
【java入门到放弃】XXL-JOB
java
爱滑雪的码农14 分钟前
Java基础十一 流(Stream)、文件(File)和IO
java·开发语言·python
nlpming17 分钟前
opencode 内置工具
算法
叶小鸡17 分钟前
Java 篇-项目实战-天机学堂(从0到1)-day11
java·开发语言
nlpming18 分钟前
opencode - 常用命令&自定义命令
算法