LeetCode 204. Count Primes[通俗易懂]

LeetCode 204. Count Primes

大家好,又见面了,我是全栈君。

LeetCode原题维基百科都有解释用到的Sieve of Eratosthenes算法。
该算法可在O(nloglogn)时间内,求出小于n的全部质数;空间复杂度为O(n).
随着n的增大。当空间有限时。维基百科还提出了一种分段筛选(segmented sieve)方法。在时间复杂度不变的情况下,将空间复杂度降为O(n^0.5).

以下代码实现了常规筛选(regular sieve)方法:

class Solution 
{
public:
    int countPrimes(int n) 
    {
        if (n <= 1)
        {
            return 0;
        }

        bool prime[n];
        memset(prime, true, sizeof(prime));
        for (int i = 2; i * i < n; ++ i)
        {
            if (prime[i] == false)
            {
                continue;
            }
            for (int j = i * i; j < n; j += i)
            {
                prime[j] = false;
            }
        }
        return count_if(prime+2, prime+n, [](bool prime) -> bool { return prime;});
    }
};

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115376.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月5日 上午11:00
下一篇 2022年2月5日 上午11:00


相关推荐

  • 内部安装virtualbox虚拟机增强工具

    内部安装virtualbox虚拟机增强工具

    2021年5月16日
    99
  • 怎么修改HTML网页的名字_如何修改html文件内容

    怎么修改HTML网页的名字_如何修改html文件内容NetCms默认设置中,只能上传Doc文件,不能上传xls文件和PPT文件。 上传文件类型可以“控制面板–>参数设置–>上传文件允许格式”中设置。但是,仅能上传,添加新闻时,添加附件的文件选择框中无法看到xls文件和ppt文件。 通过查看源文件,添加新闻页面是~/Manage/News/News_add.aspx文件,在该文件中,添加附件位置,通过调用JavaScript的s

    2026年4月18日
    4
  • 零基础Midjourney指南:提示词设计、多风格探索,玩转AI生成艺术

    零基础Midjourney指南:提示词设计、多风格探索,玩转AI生成艺术

    2026年3月15日
    2
  • 1进程 ppid_PPID · 理解Linux进程 · 看云

    1进程 ppid_PPID · 理解Linux进程 · 看云PPID 每个进程除了一定有 PID 还会有 PPID 也就是父进程 ID 通过 PPID 可以找到父进程的信息 为什么进程都会有父进程 ID 呢 因为进程都是由父进程衍生出来的 后面会详细介绍几种衍生的方法 那么跟人类起源问题一样 父进程的父进程的父进程又是什么呢 实际上有一个 PID 为 1 的进程是由内核创建的 init 进程 其他子进程都是由它衍生出来 所以前面的描述并不准确 进程号为 1 的进程并没有 PPID 因

    2026年3月18日
    2
  • 微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比

    微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比前言服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。CAP理论…

    2022年6月4日
    34
  • 签名证书、数字签名和数字信封

    签名证书、数字签名和数字信封签名证书作为文件形式存在的证书一般有这几种格式 nbsp 1 带有私钥的证书 nbsp nbsp 由 PublicKeyCry 12 PKCS 12 标准定义 包含了公钥和私钥的二进制格式的证书形式 以 pfx 作为证书文件后缀名 nbsp 2 二进制编码的证书 nbsp 证书中没有私钥 DER 编码二进制格式的证书文件 以 cer 作为证书文件后缀名

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号