leetcode题目链接

有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。

示例 1:

输入: k = 5

输出: 9

根据题意我们可以知道,一个满足要求的数一定是之前的一个dp3* 3,dp5* 5,dp7* 7,并且这一结果一定是三个乘积的最小值,因此我们只需要记录3,5,7各自dp的值,再相互与 3,5,7 相乘,取其中的最小值,就是当前的目标值。代码如下

    public int getKthMagicNumber(int k) {
int i3 = 0, i5 = 0, i7 = 0;
int[] dp = new int[k];
dp[0] = 1;
for(int i = 1; i < k; i++){
// 3 5 7 9 15 21 25
// 1 1 1 2 3 4 4 i3
// 0 1 1 1 2 2 3 i5
// 0 0 1 1 1 2 2 i7
dp[i] = Math.min(Math.min(dp[i3]*3, dp[i5]*5) , dp[i7]*7);
if(dp[i] == dp[i3]*3)i3++;
if(dp[i] == dp[i5]*5)i5++;
if(dp[i] == dp[i7]*7)i7++;
}
return dp[k-1];
}

最新文章

  1. 从零开始山寨Caffe&#183;壹:仰望星空与脚踏实地
  2. Guava学习笔记:Immutable(不可变)集合
  3. InnoDB源码分析--事务日志(二)
  4. 151003-动起来-Javascript
  5. chrome shortcutkey
  6. windows下mongodb安装与使用整理
  7. 安装SQL Server 2008 R2 Enterprise错误:&#39;&#39; is not a valid login or you do not have permission
  8. 用英文加优先级来解读C的声明
  9. java IO文件操作简单基础入门例子,IO流其实没那么难
  10. buttongroup中content一次性加载的解决方法
  11. lintcode 链表求和
  12. Dynamics 365中的批量删除作业执行频率可以高于每天一次吗?
  13. Mysql基本架构及查询流程
  14. JS AJAX 跨域
  15. linux运维工作内容及岗位要求
  16. Java知多少(8)类库及其组织结构
  17. web服务器检测
  18. Python的set集合详解
  19. java中静态变量,静态代码块,静态方法,实例变量,匿名代码块等的加载顺序
  20. BluetoothSocket详解

热门文章

  1. [Unity]Update()与FixedUpdate()
  2. 基于windows系统使用GNVM进行node切换版本
  3. 异常机制(Exception)
  4. Selenium中的option用法实例
  5. 顺手写的redis分布式锁
  6. PowerToys 微软效率工具包 使用教程
  7. Debug时使用热部署修改代码
  8. find_package()的使用
  9. WAVE音频文件格式及其64位扩展格式的简要介绍
  10. java基础(数组、面向抽象编程、static、异常)