综合电子商务型企业网站,怎么做网站的网盘,网站建设3000字,中国互联网金融协会平台官网文章目录1. LeetCode 263. 丑数解题2. LeetCode 264. 丑数 IIDP解题1. LeetCode 263. 丑数
编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 2, 3, 5 的正整数。
示例 1:
输入: 6
输出: true
解释: 6 2 3示例 2:
输入: 8
输出: true
解释: 8 2 2 2示例 3:
…
文章目录1. LeetCode 263. 丑数解题2. LeetCode 264. 丑数 IIDP解题1. LeetCode 263. 丑数
编写一个程序判断给定的数是否为丑数。
丑数就是只包含质因数 2, 3, 5 的正整数。
示例 1:
输入: 6
输出: true
解释: 6 2 × 3示例 2:
输入: 8
输出: true
解释: 8 2 × 2 × 2示例 3:
输入: 14
输出: false
解释: 14 不是丑数因为它包含了另外一个质因数 7。
说明
1 是丑数。
输入不会超过 32 位有符号整数的范围: [−2^31, 2^31 − 1]。来源力扣LeetCode 链接https://leetcode-cn.com/problems/ugly-number 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
解题
类似题目 LeetCode 1201. 丑数 III最小公倍数二分查找 程序员面试金典 - 面试题 17.09. 第 k 个数set优先队列/DP LeetCode 313. 超级丑数动态规划 LeetCode 878. 第 N 个神奇数字二分查找
class Solution {
public:bool isUgly(int num) {if(num 0)return false;int n;while(num ! 1){n num;//记录原数if(num%2 0)num / 2;if(num%3 0)num / 3;if(num%5 0)num / 5;if(n num) //操作下来数没变return false;}return true;}
};2. LeetCode 264. 丑数 II
编写一个程序找出第 n 个丑数。
丑数就是只包含质因数 2, 3, 5 的正整数。
示例:
输入: n 10
输出: 12
解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
说明:
1 是丑数。
n 不超过1690。来源力扣LeetCode 链接https://leetcode-cn.com/problems/ugly-number-ii 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
DP解题
类似题目程序员面试金典 - 面试题 17.09. 第 k 个数set优先队列/DP参考别人的解法每次将前面的所有数乘以 k ( 235 )取比前一个丑数 Ui-1 大且最小的但是不必遍历前面所有数因为 前面有一个丑数 Ux* k Ui-1 x那么前面式子不成立的时候下标 x 就是下次 乘以 k 的丑数位置
class Solution {
public:int nthUglyNumber(int n) {int dp[n1] {0};dp[1] 1;int i21, i31, i51;for(int i 2; i n; i){dp[i] min(dp[i2]*2, min(dp[i3]*3, dp[i5]*5));if(dp[i2]*2 dp[i])i2;if(dp[i3]*3 dp[i])i3;if(dp[i5]*5 dp[i])i5;}return dp[n];}
};优先队列
class Solution {
public:int nthUglyNumber(int n) {setlong s;s.insert(1);int count 0;long tp;while(count ! n){count;tp *s.begin();s.erase(s.begin());s.insert(tp*2);s.insert(tp*3);s.insert(tp*5);}return tp;}
};