[LeetCode]204. 计数质数(java实现)筛质数模板题、线性筛法

编程入门 行业动态 更新时间:2024-10-17 00:18:30

[LeetCode]204. 计数<a href=https://www.elefans.com/category/jswz/34/1764968.html style=质数(java实现)筛质数模板题、线性筛法"/>

[LeetCode]204. 计数质数(java实现)筛质数模板题、线性筛法

[LeetCode]204. 计数质数(java实现)筛质数模板题、线性筛法

  • 1. 题目
  • 2. 读题(需要重点注意的东西)
  • 3. 解法
  • 4. 可能有帮助的前置习题
  • 5. 所用到的数据结构与算法思想
  • 6. 总结

1. 题目

2. 读题(需要重点注意的东西)

思路(筛质数——线性筛法):


因此时间复杂度是O(n)

线性筛法的证明详见[AcWing]868. 筛质数(C++实现)线性筛模板题

3. 解法

---------------------------------------------------解法---------------------------------------------------

class Solution {public int countPrimes(int n) {boolean[] st = new boolean[n];List<Integer> primes = new ArrayList<>();for(int i = 2;i < n;i++){ // 注意1既不是质数也不是合数if(!st[i]) primes.add(i);for(int j = 0;i * primes.get(j) < n;j++){st[i * primes.get(j)] = true; // 筛合数if(i % primes.get(j) == 0) break;  // break保证了只筛一次}}return primes.size();}
}

可能存在的问题:

4. 可能有帮助的前置习题

  • [AcWing]868. 筛质数(C++实现)线性筛模板题

5. 所用到的数据结构与算法思想

  • 线性筛

6. 总结

线性筛筛质数的模板题,背下来!

更多推荐

[LeetCode]204. 计数质数(java实现)筛质数模板题、线性筛法

本文发布于:2024-03-05 00:18:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1710803.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:质数   线性   模板   LeetCode   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!