zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):哈希表类:第204题:统计所有小于非负整数 n 的质数的数量。

    题目:
    统计所有小于非负整数 n 的质数的数量。
    思路:
    按照标签使用哈希表,借助判断质数的函数导致超时了,如程序1所示,测试可以通过。后来看使用一种很快的方法叫厄拉多塞筛法,如程序2所示。
    程序1:
    class Solution:
        def countPrimes(self, n: int) -> int:
            myHashMap = set([])
            for index1 in range(n):
                if self.findPrimeNumber(index1) == True:
                    myHashMap.add(index1)
            return len(myHashMap)
        def findPrimeNumber(self, num: int) -> bool:
            if num == 0:
                return False
            if num == 1:
                return False
            if num == 2:
                return True
            if num > 2:
                for index in range(2, num):
                    if num % index == 0:
                        return False
                        break
                else:
                    return True
            else:
                return False
    程序2:
    class Solution:
        def countPrimes(self, n: int) -> int:
            if n == 0:
                return 0
            if n == 1:
                return 0
            if n == 2:
                return 0       
            prime = [1] * n
            prime[0] = prime[1] = 0
            for index1 in range(2, int(n**0.5) + 1):
                if prime[index1] == 1:
                    for index2 in range(index1 * index1 , n, index1):
                        prime[index2] = 0
            return sum(prime)
  • 相关阅读:
    一个判断浏览器类型的JS
    asp中输出xml “文本内容中发现无效字符”问题的解决(转)
    Excel VBA工程密码之最简单破解法
    爆破AspriseOCR 4.0
    vi编辑器的使用(转载)
    数据挖掘(转载)
    简单工厂模式(SimpleFactory)
    工厂方法模式(Factory Method)
    让gridview默认处于编辑模式并取得编辑后的值
    GDB调试精粹及使用实例(转载)
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12787374.html
Copyright © 2011-2022 走看看