当前位置: 首页 > news >正文

leetCode——1492. n的第k个因子

通过万岁!!!

  • 题目:给你一个数字n,然后找他的因子(n % i == 0),其实就是能够被n整除的数。然后是所有的数字排序后,返回第k个。
  • 思路:简单思路就是for循环1到n么。我们得收集一下这些数组,然后数字不会重复,所以我们用set。然后还要排序,所以我们直接用treeSet。其次就是,如果n % i == 0。假设n / i ==j。那么j和i都是我们要找的数,所以一次计算,我们就找到了两个。还有就是如果i在set集合中,就直接continue,这样还能剪枝。然后再考虑一个问题,就是我我们真的需要到n-1么?举个栗子哈,如果这个数字是20,我们只需要把20加进去,然后for循环到10就好了。这样我们的时间又减少了一半。
  • 技巧:treeSet,剪枝。

java代码

class Solution {public int kthFactor(int n, int k) {Set<Integer> treeSet = new TreeSet<>();treeSet.add(1);treeSet.add(n);// 这里原本其实要到n,但是其实可以简化下,到n/2for (int i = 2; i <= n / 2; i++) {if (treeSet.contains(i)) {continue;}if (n % i == 0) {treeSet.add(i);treeSet.add(n / i);}}if (treeSet.size() < k) {return -1;}return (int) Arrays.asList(treeSet.toArray()).get(k - 1);}
}
  • 总结:题目不是特别复杂,就是需要把j也加进去,然后就是for循环只需要到n/2即可。
http://www.dtcms.com/a/289038.html

相关文章:

  • ps2025下载与安装教程(附安装包) 2025最新版photoshop安装教程
  • 进阶向:基于Python的局域网文件传输工具
  • 初识软件测试
  • Redis 详解:从入门到进阶
  • Hiredis 构建 Redis 命令实战指南
  • 基于pi/4-QPSK扩频解扩和gardner环定时同步的通信系统matlab性能仿真
  • 绝对定位 vs 浮动:CSS布局核心差异解析
  • Spring 源码阅读(二) 核心概念解析 ApplicationContext、类型转化
  • 企业安全防护:堡垒机技术解析
  • 数据结构与算法汇总
  • spring-cloud使用
  • 再谈文件-ext2文件系统
  • NISP-PTE基础实操——XSS
  • PPT科研画图插件
  • 力扣-55.跳跃游戏
  • 【C语言】内存函数介绍(上)
  • axios二次封装-单个、特定的实例的拦截器、所有实例的拦截器。
  • 【机器学习深度学习】量化与选择小模型的区别:如何理解两者的优势与局限?
  • 嵌入式硬件篇---核心板制作
  • nginx定期清理日志
  • 【面向对象】C++类实现计数器:从理论到实践的编程之旅
  • RK3588 编译 Android 13 镜像方法
  • 基于有监督学习的主动攻击检测系统
  • Softhub软件下载站实战开发(十九):软件信息展示
  • MCP与智能问数技术全面指南:从协议设计到智能化数据查询
  • Flink高频考点:Checkpoint与Savepoint的高可用实战指南
  • 购物--贪心例题
  • LLM指纹底层技术——噪声鲁棒性机制
  • 英伟达:拓展LLM训练过程
  • Day1||Vue指令学习