国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

leetcode-204-Count Primes

2019-11-08 02:56:11
字體:
供稿:網(wǎng)友

問題

題目:[leetcode-204]

思路

素數(shù)篩法。 方法不難,但是搞了我很多時間。

首先不用全局或者靜態(tài)變量,在堆上開辟是一樣的。 用vector就好。

之前做acm的時候,用的全局初始化。 然后后面每次判斷就很容易。

但是,用c++寫的時候,由于沒用全局或者靜態(tài)變量。 所以,在寫的時候。我一直有個誤區(qū):單次覺得沒有初始化的必要。 一直糾結(jié)在怎么樣全局變量和靜態(tài)變量上。

其實,單次跑的時候,也有很多優(yōu)化的地方。首先不是完全的O(N2)的復雜度。因為當前的素數(shù)會將后面的倍數(shù)置位,那么下次遍歷的時候,只要置位會跳過。畢竟素數(shù)少,其實跳過的還是比較多的。也就是,執(zhí)行兩次循環(huán)的比較少。

還有個注意點:

int j = i*i,當i很大的時候,j可能越界。其次,不要優(yōu)化 j = i*i,j = i*2是過的。

代碼

class Solution {public: int countPRimes(int n) { std::vector<bool> marker(n, 0); int cnt = 0; for(int i = 2; i < n; ++i){ if(marker[i]) continue; else{ ++cnt; for(int j = i*2; j < n && j > 0; j += i){ marker[j] = true; } } } return cnt; }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 朝阳市| 顺义区| 淳安县| 苏尼特右旗| 凌海市| 黔西县| 白河县| 法库县| 牟定县| 酉阳| 岐山县| 古丈县| 东宁县| 临武县| 长泰县| 改则县| 屏南县| 达拉特旗| 安福县| 囊谦县| 家居| 巴马| 明光市| 崇文区| 衡山县| 牡丹江市| 肥东县| 上虞市| 新营市| 北票市| 进贤县| 茌平县| 五指山市| 望都县| 顺平县| 新疆| 荥阳市| 白银市| 化州市| 南漳县| 岗巴县|