leetcode-236-Ugly Number
来源:互联网 发布:2016淘宝小号注册方法 编辑:程序博客网 时间:2024/04/28 03:14
问题
题目:[leetcode-236]
思路
素数筛法的思路。但是第一遍TLE。
仔细想了下,这个两边循环的代码时间是没有问题的,因为之前的帖子也学习了。不是完全的
所以,考虑整数的最大值2147483647。
所以,我猜测可能是辅助空间开大了。因为之前看的和num一样大,那么当num给INT_MAX的时候,时间就上去了。这么分析之后,修改了代码,正确。
所以,改bug是件很重要的事情。根据错误,快速定位,猜测可能出现错误的地方,进行修改就行。原则,只要有一丝希望,就要去尝试。
两个注意点:
- 辅助空间大小的开辟(
n√ ) - 大素因子的判断(只能有一个大于
n√ 的因子),对本体来说,只要出现返回false.
代码
class Solution {public: bool isUgly(int num) { if(1==num) return true; else if(num < 1) return false; else{ const int maxn = 50000; vector<int> prime_table; vector<bool> marker(maxn+1, 0); for(int i = 2; i <=maxn; ++i){ if(marker[i]) continue; else{ prime_table.push_back(i); for(int j = i*2; j <= maxn; j += i){ marker[j] = true; } } } int prime_cnt = prime_table.size(); int index = 0; while( num != 1 && index < prime_cnt ){ int& prime = prime_table[index]; while( num != 1 && num % prime == 0 ){ num /= prime; if(prime>5) return false; } index++; } if(num != 1) return false; else return true; } }};
0 0
- leetcode-236-Ugly Number
- leetcode之Ugly Number && Ugly Number II
- leetcode - Ugly Number、Ugly Number II 、Super Ugly Number
- LeetCode: Ugly Number
- [leetcode][math] Ugly Number
- Leetcode -- Ugly Number II
- [leetcode] Ugly Number
- [leetcode] 263.Ugly Number
- LeetCode: Ugly Number II
- [LeetCode] Ugly Number
- leetcode 263: Ugly Number
- leetCode #263 Ugly Number
- [leetcode] Ugly Number
- LeetCode-Ugly Number
- [leetcode] Ugly Number II
- Leetcode: Ugly Number
- Leetcode: Ugly Number II
- LeetCode题解:Ugly Number
- YDB基本使用详解
- 结构化分析建模
- Android开发中Crash异常收集与统计分析(一、Java语法相关异常)
- pat 1114. Family Property (25)
- Android项目之本地图片加载
- leetcode-236-Ugly Number
- 使用消息队列的 10 个理由
- 北京租房应该注意的
- 蓝桥杯 ALGO-115 算法训练 和为T
- Slim Span POJ - 3522 题解
- JsonCpp的简单使用方法
- fopen,open,fwrite,write,fread,read区别
- 你不能不知道的 经典历史典故
- 关于mysql的安装使用以及java编程