leetcode 263|264|313. Ugly Number 1|2 313. Super Ugly Number
来源:互联网 发布:excel数据抽样 编辑:程序博客网 时间:2024/06/07 07:11
263. Ugly Number
Write a program to check whether a given number is an ugly number.
Ugly numbers are positive numbers whose prime factors only include 2, 3, 5
. For example, 6, 8
are ugly while 14
is not ugly since it includes another prime factor 7
.
Note that 1
is typically treated as an ugly number.
class Solution {public: bool isUgly(int num) { if (num == 0) return false; while (num % 2 == 0) { num = num/2; } while (num % 3 == 0) { num = num/3; } while (num % 5 == 0) { num = num/5; } return num == 1; }};
264. Ugly Number II
Write a program to find the n
-th ugly number.
Ugly numbers are positive numbers whose prime factors only include 2, 3, 5
. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12
is the sequence of the first 10
ugly numbers.
Note that 1
is typically treated as an ugly number, and n does not exceed 1690.
class Solution {public: int nthUglyNumber(int n) { int count = 0; set<long long> se; se.insert(1); while (1) { long long key = *se.begin(); se.erase(key); if ( ++count == n) return key; se.insert(key * 2); se.insert(key * 3); se.insert(key * 5); } return -1; }};
class Solution {public: int nthUglyNumber(int n) { vector<int> vc(n, 1); int index2 = 0; int index3 = 0; int index5 = 0; int val2 = 2; int val3 = 3; int val5 = 5; for (int i = 1; i < n; i++) { int insert = min(val2, min(val3, val5)); vc[i] = insert; if (insert == val2) { val2 = vc[++index2] * 2; } if (insert == val3) { val3 = vc[++index3] * 3; } if (insert == val5) { val5 = vc[++index5] * 5; } } return vc[n - 1]; }};
313. Super Ugly Number
Write a program to find the nth super ugly number.
Super ugly numbers are positive numbers whose all prime factors are in the given prime list primes
of size k
. For example, [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32]
is the sequence of the first 12 super ugly numbers given primes
= [2, 7, 13, 19]
of size 4.
Note:
(1) 1
is a super ugly number for any given primes
.
(2) The given numbers in primes
are in ascending order.
(3) 0 < k
≤ 100, 0 < n
≤ 106, 0 < primes[i]
< 1000.
(4) The nth super ugly number is guaranteed to fit in a 32-bit signed integer.
方法和上面那个一模一样。
class Solution {public: int nthSuperUglyNumber(int n, vector<int>& primes) { vector<int> index(primes.size(), 0); //index[i] 存的是primes第i位应该和 index[i]相乘 vector<int> ret(n, 1); //存结果数组 vector<int> val(primes); for (int i = 1; i < n; i++) { ret[i] = *min_element(val.begin(), val.end()); for (int j = 0; j < val.size(); j++) { if (ret[i] == val[j]) { val[j] = ret[++index[j]] * primes[j]; } } } return ret[n - 1]; }};
- leetcode 263|264|313. Ugly Number 1|2 313. Super Ugly Number
- 313. Super Ugly Number LeetCode
- leetcode 313. Super Ugly Number
- LeetCode 313. Super Ugly Number
- LeetCode *** 313. Super Ugly Number
- LeetCode-313.Super Ugly Number
- Leetcode 313. Super Ugly Number
- [leetcode] 313. Super Ugly Number
- 【LeetCode】 313. Super Ugly Number
- leetcode 313. Super Ugly Number
- LeetCode 313. Super Ugly Number
- [LeetCode]313. Super Ugly Number
- leetcode 313. Super Ugly Number
- [leetcode]313. Super Ugly Number
- leetcode 313. Super Ugly Number
- leetcode 313. Super Ugly Number
- LeetCode 313. Super Ugly Number
- [LeetCode]313. Super Ugly Number
- netty系列3-Java BIO编程
- 神经网络中的各种激活函数
- JDK各个版本的新特性jdk1.5-jdk8
- android中setImageResource加载大图片出现oom解决方案
- bootstrap使用教程
- leetcode 263|264|313. Ugly Number 1|2 313. Super Ugly Number
- Spring @Transactional注解不回滚不起作用无效
- com.google.protobuf学习笔记
- 部署模型-电商网站后台分布式部署方案
- 最简单的卸载ubantu系统(Windows和Linux双系统)
- Brute Force算法介绍及C++实现
- CentOS 7中启动/停止/重启服务
- layer弹出图片二维码
- 安装PM2报错 npm: symbol SSL_set_cert_cb