leetcode 204题求素数个数】的更多相关文章

    Description: Count the number of prime numbers less than a non-negative number, n 提示晒数法: http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes https://primes.utm.edu/howmany.html 别人的代码: int countPrimes(int n) { if (n<=2) return 0; vector<bool> p…
题意:给一个数n,返回小于n的素数个数. 思路:设数字 k =from 2 to sqrt(n),那么对于每个k,从k2开始,在[2,n)范围内只要是k的倍数的都删掉(也就是说[k,k2)是不用理的,若能被筛掉早就被筛了,保留下来的就是素数).最后统计一下[2,n)内有多少个还存在的,都是素数. 要注意,如果k已经被筛掉了,那么不用再用它来删别人了,因为已经被筛掉,那么现在比k2大的且是k的倍数,都已经被干掉了. class Solution { public: int countPrimes(…
引言 子序列和子字符串或者连续子集的不同之处在于,子序列不需要是原序列上连续的值. 对于子序列的题目,大多数需要用到DP的思想,因此,状态转移是关键. 这里摘录两个常见子序列问题及其解法. 例题1, 最长公共子序列 我们知道最长公共子串的求法,先温习一下,它的求法也是使用DP思想,对于 字符串s1 和字符串s2,令 m[i][j] 表示 s1上以s1[i]结尾的子串和s2上s2[j]结尾的子串的最长公共子串长度,因为公共子串必须是连续的,因此状态转移方程:m[i, j] = (s1[i] ==…
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3726 访问. 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 输入: [1,2,3] 输出: 6 输入: [1,2,3,4] 输出: 24 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]. 输入的数组中任意三个数的乘积不会超出32位有符号整数的范围. Given an integer ar…
问题 计数质数 统计所有小于非负整数 n 的质数的数量. 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 . 第一种解法容易想到但是会 超时 class Solution { public int countPrimes(int n) { int counter = 0; for (int i = 2; i < num; i++) { if (isPrime(i)){ // 是素数 counter++ counter++; } } re…
How many prime numbers Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 14684    Accepted Submission(s): 5091 Problem Description   Give you a lot of positive integers, just to find out how many…
本文是对 LeetCode Count Primes 解法的探讨. 题目: Count the number of prime numbers less than a non-negative number, n. 尽管题目并没有要我们写一个最优的算法,但是身为一个程序员,优化应该是一种习惯,在编程的过程中,随着思考进行优化.只要求我们满足给定的时间和空间即可. 如果你只能想出一个最简单的方法,难道你会有什么竞争力吗? 穷举 最开始我用的就是这个方法,可以说这是最简单的一种方法了,而且最开始,我…
数学篇 # 题名 刷题 通过率 难度 2 两数相加   29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 (atoi)   15.3% 中等 9 回文数 C#LeetCode刷题之#9-回文数(Palindrome Number) 51.7% 简单 12 整数转罗马数字   53.8% 中等 13 罗马数字转整数 C#LeetCode刷题之#13-罗马数字转整数(Roman to Integer) 53…
数组篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 43.1% 简单 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组的中位数(Median of Two Sorted Arrays)-该题未达最优解 30.1% 困难 11 盛最多水的容器 C#LeetCode刷题之#11-盛最多水的容器(Container With Most Water) 37.9% 中等 15 三数之和 C#LeetCode刷题之#15-三数…
题目连接:http://www.spoj.com/problems/CNTPRIME/ #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #define lson rt<<1,L,mid #define rson rt<<1|1,mid+1,R /* 水题 题意:给出n个初始值,给出两种操作 0 x y v:将[x,y]的数改…