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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Redisson分布式锁的简单使用

    redis分布式锁学习和集成框架Redisson分布式锁的一些简单使用

    2022年3月1日
    52
  • 超全Python图像处理讲解(多图预警)

    超全Python图像处理讲解(多图预警)文章目录Pillow模块讲解一、Image模块1.1、打开图片和显示图片1.2、创建一个简单的图像1.3、图像混合(1)透明度混合(2)遮罩混合1.4、图像缩放(1)按像素缩放(2)按尺寸缩放1.5、图像的剪切与粘贴(1)图像粘贴(2)裁剪图像1.4、图像旋转和格式转换(1)图像旋转(2)格式转换1.5、分离和合并(1)分离(2)合并二、ImageFilter2.1、高斯模糊2.2、其它滤镜三、…

    2022年6月20日
    44
  • docker下Jenkins的部署和升级「建议收藏」

    docker下Jenkins的部署和升级「建议收藏」获取Jenkins镜像dockersearchjenkinsdockerpulljenkinsdockerimages创建映射目录mkdir-p/var/jenkins_homechown-R1000:1000/var/jenkins_home启动jenkins镜像sudodockerrun-itd-p8080:8080-p50000:50000–namejenkins–privileged=true-v/home/jenkins_

    2022年5月15日
    39
  • igmp是负责ip组播成员管理的协议_IGMP协议

    igmp是负责ip组播成员管理的协议_IGMP协议组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播路由协议包括PIM-SM、PIM-DM、DVMRP等协议,域间组播路由协议包括MBGP、MSDP等协议。IGMP(InternetGroupManagementProtocol)作为因特网组管理协议,是TCP/IP协议族中负责IP组播成员管理的协议,它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关

    2022年9月14日
    3
  • Python定义函数

    Python定义函数其他形式1:1、定义函数deftest4(a=()):print('################test4################')print(type(a

    2022年7月5日
    25
  • 【Java】Java编译错误:需要class,interface或enum

    【Java】Java编译错误:需要class,interface或enum1.源代码classFangFaDemo{publicstaticvoidmain(String[]args){intx=1,y=2;System.out.println(sum(x,y));}}publicstaticintsum(inta,intb){returna+b;}…

    2022年6月8日
    65

发表回复

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

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