Java丑数

阅读: 评论:0

Java丑数

Java丑数

剑指offer 49.丑数

解题思路:

使用三指针

第一个丑数是1, 之后的丑数都是基于前面的丑数分别乘以235组成的,
每次将当前三个丑数中最小的一个添加进数组, 这个最小的丑数是由谁计算的, 谁指针就后移一位
注意:
使用的是三个if
不能使用else if
例如丑数为6的时候, 既可以由3 * 2得到, 又可以由2 * 3得到

class Solution {public int nthUglyNumber(int n) {int a = 0, b = 0, c = 0;int[] dp = new int[n];dp[0] = 1;for(int i = 1; i < n; i++){int n1 = dp[a] * 2, n2 = dp[b] * 3, n3 = dp[c] * 5;dp[i] = Math.min(n1, Math.min(n2, n3));if(n1 == dp[i]) a++;if(n2 == dp[i]) b++;if(n3 == dp[i]) c++;}return dp[n - 1];}
}

本文发布于:2024-02-03 23:47:24,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170697852751774.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:python判断丑数
下一篇:java 找丑数
标签:Java
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23