LeetCode-204. Count Primes
2018-01-18 16:56
330 查看
Description
Solution 1(C++)
class Solution { public: int countPrimes(int n) { vector<bool> isprime(n, true); isprime[0] = false, isprime[1] = false; for (int i = 0; i < sqrt(n); ++i) { if (isprime[i]) { for (int j = i*i; j < n; j += i) { isprime[j] = false; } } } return count(isprime.begin(), isprime.end(), true); } };
算法分析
这种算法题,简单经典,直接背下来就好了。虽然简单,仔细品品还是蛮有意思的。其实该方法能降低算法复杂度,就是通过避免重复。从第二层循环中j+=i。就能看出来,第二层循环是按照i的大小来进行跳跃遍历的。而随着i从小到大,“跳跃”没踩到的地方总会踩到。
程序分析
注意:isprime[0] = false, isprime[1] = false;
前一个是为了防止死循环。后一个是为了防止算法又变为从0~n的遍历。
相关文章推荐
- LeetCode 204. Count Primes
- LeetCode 204. Count Primes
- leetcode 204. Count Primes
- 【leetcode】204. Count Primes
- LeetCode - 204. Count Primes
- LeetCode - 204. Count Primes
- leetcode No204. Count Primes
- LeetCode 204. Count Primes
- LeetCode:204. Count Primes
- leetcode 204. Count Primes
- [leetcode]: 204. Count Primes
- leetcode_204. Count Primes 统计素数
- 【LeetCode】204. Count Primes
- Leetcode 204. Count Primes
- LeetCode 204. Count Primes
- [Leetcode]204. Count Primes
- Leetcode——204. Count Primes
- [LeetCode] 204. Count Primes
- Leetcode 204. Count Primes
- [leetcode] 204. Count Primes