力扣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;
      }
  };
相关推荐
爱跳舞的烤冷面几秒前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号19 分钟前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
马拉AI35 分钟前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
离陌在学C#2 小时前
C# 重载与重写:深入理解面向对象编程的核心概念
java·c#
地平线开发者2 小时前
征程6工具链模型X86推理方式说明
算法
洛阳泰山2 小时前
AI 应用层被 Python 卷成红海,为什么我偏要用 Java 造一个 RAG + 工作流引擎?
java·人工智能·后端
地平线开发者2 小时前
【征程6】校准量化中HistogramObserver解析
算法
二十雨辰2 小时前
[Java]-Spring面试题
java·开发语言
老马历写记3 小时前
Maven POM 依赖管理总结
java·maven·system·pom·optional
古法安卓3 小时前
Android-车机 GNSS 定位数据接收问题排查
android·java·android studio