力扣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;
      }
  };
相关推荐
磊 子5 分钟前
C++移动语义和智能指针
java·开发语言·c++
JAVA面经实录9176 分钟前
Elasticsearch 完整版完整知识体系
java·elasticsearch·搜索引擎·es
hikktn9 分钟前
ORA-01861 日期格式错误的根治方案:从 SQL 层到 Java 层的标准化治理
java·python·sql
雪宫街道13 分钟前
SpringBoot 静态资源映射规则与定制
java·spring boot·后端·spring
风筝在晴天搁浅15 分钟前
LeetCode CodeTop 82.删除排序链表中的重复元素Ⅱ
算法·leetcode·链表
1892280486117 分钟前
NV114固态MT29F16T08EWLEHD6-MES:E
人工智能·算法·缓存·性能优化
宸津-代码粉碎机23 分钟前
Spring AI企业级实战|智能记忆摘要+自动遗忘机制落地,彻底解决上下文爆炸与Token冗余
java·大数据·人工智能·后端·python·spring
南极企鹅24 分钟前
springboot项目不退出的原因
java·spring boot·后端
Tairitsu_H27 分钟前
[LC优选算法#4] 滑动窗口 | 串联所有单词的⼦串 | 最⼩覆盖⼦串
c++·算法·滑动窗口
devilnumber28 分钟前
Java 二分查找(二分算法)详解 + 实战运用 + 核心坑点
java·开发语言·算法