力扣-204 计数质数
力扣-204 计数质数
这题用普通的质数筛选方法直接就给你超时了,所以我们肯定得用其他的方法,对算法进行改进
埃式筛
思路就是,先定义一个数组进行标记。
开始定义这个数组所表示的数全部都是质数,然后开始筛选。
假如这个数是质数,那么这个数的倍数就全部都被筛选下来了。
AC Code
class Solution {public:bool ret[10000006];int countPrimes(int n) {int ans =0;if(n<2) return 0;for(int i=2;i<n;i++){if(!ret[i]){for(int j = 2;j*i<n;j++)ret[j*i]=1;ans++;}}return ans;}
};
线性筛
线性筛的核心思想:每个合数只会被自己的最小的质因数筛去。
比如:12只会被2筛去 21只会被3筛去。
AC Code
class Solution {public:int ret[10000006];int prime[1000005];int countPrimes(int n) {if(n<2) return 0;ret[0]=ret[1]=1;int cnt=0;for(int i=2;i<n;i++){if(!ret[i]){prime[cnt++]=i;}for(int j=0;j<cnt && i*prime[j]<n;j++){ret[i*prime[j]] = 1;if(i%prime[j] == 0) break;}}return cnt;}
};
力扣-204 计数质数相关推荐
- 力扣——204. 计数质数
题目 python代码 1.直接法 import timeitdef countPrimes(n):'''按照质数的定义,用常规的方法来取质数 '''primesList = []for i in r ...
- 力扣202.计数质数
题目描述 统计所有小于非负整数 n 的质数的数量. 示例 示例 1:输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 .示例 2:输入:n = 0 ...
- LeetCode Algorithm 204. 计数质数
204. 计数质数 Ideas 质数的题目相对来说是个很经典的内容,虽然枚举也可以解决,但是复杂度很高,所以决定用埃氏筛来实现. 埃氏筛的基本思想是:从2开始,将每个质数的倍数都标记成合数. Code ...
- (补)20200911:力扣204周周赛题解下
力扣204周周赛题解下 题目 思路与算法 代码实现 写在最后 题目 3.1568. 使陆地分离的最少天数 思路与算法 本周周赛第三题勉强可以看看,第四题超出我目前的水平,跳过.第三题是一个典型的dfs ...
- 20200910:力扣204周周赛题解上(Java/Python/Cpp)
力扣204周周赛题解上 题目 思路与算法 代码实现 写在最后 题目 1.1566. 重复至少 K 次且长度为 M 的模式 2.1567. 乘积为正数的最长子数组长度 思路与算法 热身题不要求算法技巧, ...
- python力扣刷题记录——204. 计数质数
题目: 统计所有小于非负整数 n 的质数的数量. 方法一: 暴力法 class Solution:def countPrimes(self, n: int) -> int:count = 0if ...
- Leetcode 204. 计数质数 解题思路及C++实现
解题思路: 利用一个数组记录 n 个数是否为质数. 质数的倍数都是非质数,就这样遍历下去就可以了. class Solution { public:int countPrimes(int n) {if ...
- leetcode 204. 计数质数
题目 思路:厄拉多塞筛法 比如说求20以内质数的个数 首先 0, 1 不是质数 2 是第一个质数,然后把 20 以内所有 2 的倍数划去 2 后面紧跟的数即为下一个质数 3 , 然后把 3 所有的倍数 ...
- LeetCode:204. 计数质数
1.题目描述 统计所有小于非负整数 n 的质数的数量. 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 . 2.题解 2.1.解法一 缺点: ...
- LeetCode 204. 计数质数(质数的倍数不是质数)
1. 题目 统计所有小于非负整数 n 的质数的数量. 示例:输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 . 2. 填表解题 2的倍数不是质数 3 ...
最新文章
- 印度小哥“神剑”:PDF提取表格so easy!
- html设置字体整体放大,请教怎么样可以只放大或缩小内容层里的字体呢?我不想让整页都放大缩小。请指教!谢谢!_html/css_WEB-ITnose...
- break、continue和return的使用
- MySQL in语句内参数个数限制
- LiveVideoStack线上分享第三季(六):深度学习与视频编码
- 【视频码率==文件传输大小等通用计算】
- Java面试知识点:多态、内部类
- axi时序图_深入 AXI4总线(E3)实战:制作一个 AXI 接口 IP
- mac下终端命令行下添加mysql命令
- linux查看端口属性,linux如何查看系统属性指令?
- 大一matlab知识整理,MATLAB基础课程 第二章 MATLAB绘图知识(5)
- 二维树状数组(水题) POJ1195
- faster rcnn resnet_张航、李沐等人提出ResNet最强改进版:性能提高3%,参数不增
- json标准格式举例_JSON格式简介及一些对应函数
- C中得到4号错误(中断),怎么办
- 2021-09-14Apriori 算法是基于关联规则的高效数 据挖掘算法
- 【信号处理】信号与系统 电子课本(郑君里)
- 概率分布总结及正态分布检验K-S检验用法
- 腐蚀rust电脑分辨率调多少_腐蚀Rust帧数优化指南 游戏FPS提高方法说明
- newman V3 command line
热门文章
- [Swift]LeetCode874. 模拟行走机器人 | Walking Robot Simulation
- centos7 安装python3.6 及模块安装演示
- 使用python生成c文件模板
- 【JUC】JDK1.8源码分析之ConcurrentSkipListMap(二)
- Spring MVC @ResponseBody返回中文字符串乱码问题
- 趣达学院学习有奖活动!
- 刚创建了蕝薱嚣张IT部落
- HAL中通过jni调用java方法的问题
- EMNLP21' | 细粒度情感分析新突破 —— 通过有监督对比学习方法学习隐式情感...
- 没有顶会的 CV/NLP 方向的博士生毕业出路在哪里?