精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試官本想拿一道求素數搞我,但被我優雅的"回擊"了

開發 前端
現在的面試官,是無數開發者的夢魘,能夠吊打面試官的屬實不多,因為大部分面試官真的有那么那幾下子。但在面試中,我們這些小生存者不能全盤否定只能單點突破—從某個問題上讓面試官眼前一亮。這不,今天就來分享來了。

[[356360]]

本文轉載自微信公眾號「 bigsai」,作者 bigsai。轉載本文請聯系 bigsai公眾號。

前言

現在的面試官,是無數開發者的夢魘,能夠吊打面試官的屬實不多,因為大部分面試官真的有那么那幾下子。但在面試中,我們這些小生存者不能全盤否定只能單點突破—從某個問題上讓面試官眼前一亮。這不,今天就來分享來了。

這年頭,算法崗內卷不說,開發崗也有點內卷,對開發者要求越來越高了,而面試官也是處心積慮的 "刁難" 面試者,凡是都喜歡由淺入深,凡是都喜歡問個:你知道為什么?你知道原理嗎?之類。并且,以前只是大廠面試官喜歡問算法,大廠員工底子好,很多甚至有ACM經驗或者系統刷題經驗,這很容易理解,但現在一些小公司面試官也是張口閉口 xx算法、xx數據結構你說說看,這不,真的被問到了。

求一個質數

在這么一次的過程,面試官問我算法題我不吃驚,我實現早把十大排序原理、復雜度分析、代碼手寫實現出來了,也把鏈表、樹的各種操作溫習的滾瓜爛熟,不過突然就是很詫異的面試官來了一道求素數問題,我把場景還原一下:

面試官:你知道怎么求素數嗎?

我:求素數?

面試官:是的,就是求素數。

我:這很簡單啊,判斷一個數為素數,那么肯定就沒有兩個數(除了自身和1)相乘等于它,只需要枚舉看看有沒有能夠被它整除的數就可以了,如果有那么就不是素數,如果沒有,那么就是素數。

面試官露出一種失望的表情,說我說的對,但沒答到點子上,讓我具體說一下。

下面開始開始我的表演:

首先,最笨的方法,判斷n是否為素數,就是枚舉[2,n-1]之間有沒有直接能夠被n整除的,如果有,那么返回false這個就不是素數,否則就是素數,代碼如下:

  1. boolean isprime(int value){ 
  2.   for(int i=2;i<value;i++) 
  3.   { 
  4.        if(value%i==0) 
  5.        {return false;} 
  6.   } 
  7.     return true

這種判斷一個素數的時間復雜度為O(n).

但是其實這種太浪費時間了,完全沒必要這樣,可以優化一下 。如果一個數不是質數,那么必定是兩個數的乘積,而這兩個數通常一個大一個小,并且小的小于等于根號n,大的大于等于根號n,我們只需要枚舉小的可能范圍,看看是否能夠被整除,就可以判斷這個數是否為素數啦。例如100=2*50=4*25=5*20=10*10 只需要找2—10這個區間即可。右側的一定有個對應的不需要管它。

  1. boolean isprime(int value) 
  2.   for(int i=2;i*i<value+1;i++) 
  3.     { 
  4.        if(value%i==0) 
  5.        {return false;} 
  6.     } 
  7.     return true

這里之所以要小于value+1,就是要包含根號的情況,例如 3*3=9.要包含3.這種時間復雜度求單個數是O(logn)。面試官我給你畫張圖讓你看看其中區別:

2

說到這里面試官露出欣慰的笑容。

面試官:不錯不錯,基本點掌握了

我:老哥,其實求素數精髓不在這,這個太低效在很多時候,比如求小于n的所有素數,你看看怎么搞?

面試官:用個數組用第二種方法求nlogn還行啊。

求多個素數

求多個素數的時候(小于n的素數),上面的方法就很繁瑣了,因為有大量重復計算,因為 計算某個數的倍數 是否為素數的時候出現大量的重復計算,如果這個數比較大那么對空間浪費比較多。

這樣,素數篩的概念就被發明和使用。篩的原理是從前往后進行一種遞推、過濾排序以來統計素數。

埃拉托斯特尼(Eratosthenes)篩法

我們看一個數如果不是為素數,那么這個數沒有數的乘積能為它,那么這樣我們可以根據這個思想進行操作啊:

直接從前往后枚舉,這個數位置沒被標記的肯定就是素數,如果這個數是素數那么將這個數的倍數標記一下(下次遍歷到就不需要在計算)。如果不是素數那么就進行下一步。這樣數值越大后面計算次數越少,在進行具體操作時候可借助數組進行判斷。所以埃氏篩的核心思想就是將素數的倍數確定為合數。

假設剛開始全是素數,2為素數,那么2的倍數均不是素數;然后遍歷到3,3的倍數標記一下;下個是5(因為4已經被標記過);一直到n-1為止。具體流程可以看圖:

具體代碼為:

  1. boolean isprime[]; 
  2. long prime[]; 
  3. void getprime() 
  4.         prime=new long[100001];//記錄第幾個prime 
  5.       int index=0;//標記prime當前下標 
  6.         isprime=new boolean [1000001];//判斷是否被標記過 
  7.         for(int i=2;i<1000001;i++) 
  8.         { 
  9.             if(!isprime[i]) 
  10.             { 
  11.                 prime[index++]=i; 
  12.             } 
  13.             for(int j=i+i;j<1000000;j=j+i)//他的所有倍數都over 
  14.             { 
  15.                 isprime[j]=true;                     
  16.             } 
  17.         } 

這種篩的算法復雜度為O(nloglogn);別小瞧多的這個logn,數據量大一個log可能少不少個0,那時間也是十倍百倍甚至更多的差距。

歐拉篩

面試官已經開始點頭贊同了,哦哦的叫了起來,可其實還沒完。還有個線性篩—歐拉篩。觀察上述的埃氏篩,有很多重復的計算,尤其是前面的素數,比如2和3的最小公倍數為6,每3次2的計算就也會遇到是3的倍數,而歐拉篩在埃氏篩的基礎上改進,有效的避免了這個重復計算。

具體是何種思路呢?就是埃氏篩是遇到一個質數將它的倍數計算到底,而歐拉篩則是只用它乘以已知曉的素數的乘積進行標記,如果素數能夠被整除那就停止往后標記。

在實現上同樣也是用兩個數組,一個存儲真實有效的素數,一個用來作為標記使用。

  • 在遍歷到一個數的時候,如果這個數沒被標記,那么這個數存在素數的數組中,對應下標加1.
  • 不管這個數是不是素數,遍歷已知素數將它和該素數的乘積值標記,如果這個素數能夠被當前值i整除,那么停止操作進行下一輪。

具體實現的代碼為:

  1. boolean isprime[]; 
  2. int prime[]; 
  3. void getprimeoula()// 歐拉篩 
  4.         prime = new int[100001];// 記錄第幾個prime 
  5.         int index = 0; 
  6.         isprime = new boolean[1000001]; 
  7.         for (int i = 2; i < 1000001; i++) { 
  8.             if (!isprime[i]) { 
  9.                 prime[index++] = i; 
  10.             } 
  11.             for (int j = 0; j < index && i * prime[j] <= 100000; j++){//已知素數范圍內枚舉 
  12.                 isprime[i * prime[j]] = true;// 標記乘積 
  13.                 if (i % prime[j] == 0) 
  14.                     break; 
  15.             } 
  16.         } 

你可能會問為啥if (i % prime[j] == 0)就要break。

如果i%prime[j]==0,那么就說明i=prime[j]*k. k為一個整數。

那么如果進行下一輪的話

i*prime[j+1]=(prime[j]*k)*prime[j+1]=prime[j]*(k*prime[j+1]) 當i=k*prime[j+1]兩個位置就產生沖突重復計算啦,所以一旦遇到能夠被整除的就停止。

image-20201208121324157

你可以看到這個過程,6只標記12而不標記18,18被9*2標記。詳細理解還需要多看看代碼想想。過程圖就不畫啦!歐拉的思路就是離我較近的我給它標記。歐拉篩的時間復雜度為O(n),因為每個數只標記一次。

面試官露出一臉欣賞的表情,說了句不錯,下面就是聊聊家常,讓我等待下一次面試!

責任編輯:武曉燕 來源: bigsai
相關推薦

2021-09-28 13:42:55

Chrome Devwebsocket網絡協議

2025-03-17 00:00:00

2024-03-18 14:06:00

停機Spring服務器

2021-12-02 08:19:06

MVCC面試數據庫

2020-09-17 17:53:12

面試ArrayList數組

2022-04-10 18:10:24

CURD鏈表

2020-09-08 06:43:53

B+樹面試索引

2024-10-11 17:09:27

2020-07-02 07:52:11

RedisHash映射

2018-09-11 14:20:06

數據庫Redis面試題

2019-08-23 09:20:35

Spring 5編程Java

2020-12-01 11:50:49

數據庫Redis面試

2019-06-21 15:23:08

Python面試題代碼

2011-05-23 11:27:32

面試題面試java

2020-02-25 16:56:02

面試官有話想說

2018-03-06 15:30:47

Java面試題

2021-03-22 17:20:48

MYSQL開發數據庫

2020-04-03 14:05:10

面試RedisJava

2017-03-16 15:27:10

面試官測試技術

2021-04-13 19:05:06

Go閉包面試
點贊
收藏

51CTO技術棧公眾號

2025国产精品自拍| 久久精品久久久久久国产 免费| 久久爱av电影| 欧美日韩精品一区二区三区视频播放| 日本美女久久| 99久久精品国产成人一区二区| 国产伦乱精品| 亚洲最大的成人av| 91福利视频导航| 国产极品国产极品| 精品视频在线播放一区二区三区| 国产精品国产三级国产普通话蜜臀 | 91传媒久久久| 色噜噜在线播放| 亚洲看片一区| 国产婷婷色综合av蜜臀av| 少妇无码av无码专区在线观看 | 吉吉日韩欧美| 久久精品这里都是精品| 国产成人一区二区在线| av电影网站在线观看| 91国拍精品国产粉嫩亚洲一区| 久久精品免费在线观看| 国产美女直播视频一区| 欧美大片xxxx| 国产精品任我爽爆在线播放| 亚洲一区影音先锋| 精品日本一区二区| 天堂网视频在线| 日韩av密桃| 日韩视频国产视频| 成人毛片视频网站| 大地资源中文在线观看免费版| 天堂成人免费av电影一区| 亚洲夜晚福利在线观看| 久久久久久综合网| 精灵使的剑舞无删减版在线观看| 97久久精品人人澡人人爽| 日本一区二区在线播放| 少妇视频一区二区| 99re8这里有精品热视频8在线| 偷偷要91色婷婷| 日韩一二三区不卡在线视频| 国产日韩免费视频| 国产亚洲精品v| 中文亚洲视频在线| 中国特级黄色片| 日韩精品专区| 一区二区三区在线观看国产| 欧美日韩在线不卡一区| 精品国产黄色片| 亚洲女同在线| 久久精品国产视频| 大地资源二中文在线影视观看| 久久精品国产福利| 图片区小说区区亚洲影院| 亚洲精品国产精品国自产| 亚洲女人18毛片水真多| 日韩有码一区二区三区| 欧美第一页在线| 久操视频在线观看免费| 国产精品99| 午夜精品福利一区二区蜜股av| 午夜精品福利一区二区| 日本免费一区视频| 韩国v欧美v亚洲v日本v| 国产999精品久久久| 校园春色 亚洲| 操欧美老女人| 日韩精品免费一线在线观看| 亚洲这里只有精品| 第84页国产精品| 亚洲国产美国国产综合一区二区| 在线成人性视频| 久青青在线观看视频国产| 丁香啪啪综合成人亚洲小说| 91精品中文在线| 91青青草视频| 国产精品呻吟| 久久久伊人日本| 情侣偷拍对白清晰饥渴难耐| 欧美亚洲精品在线| 亚洲男人第一av网站| 久草免费资源站| 欧美视频三区| 欧美一区日韩一区| 涩多多在线观看| 日韩免费福利视频| 福利二区91精品bt7086| 日韩一级免费看| 18av在线视频| 亚洲免费av观看| 91xxx视频| 快射视频在线观看| 中文字幕一区二区三区在线播放| 欧美精品在线一区| 天天操天天射天天| 北条麻妃一区二区三区| 97人人澡人人爽| 肥臀熟女一区二区三区| 国产99久久久国产精品潘金网站| 亚洲一区二区三区四区在线播放| 亚洲影院一区二区三区| 久久国产福利国产秒拍| 国产日韩欧美91| 国产又粗又黄又爽| 国内成人免费视频| 国产精品网站入口| 一级特黄色大片| 黄网站免费久久| 91视频免费进入| 丰满大乳国产精品| 91伊人久久大香线蕉| 久久亚洲午夜电影| 你懂的视频在线播放| 久久精品一区二区三区不卡牛牛 | 久久免费视频66| 亚洲国产日韩欧美在线图片| 99久久国产精| 国产一区网站| 久久精品中文字幕| 免费一级片视频| 99精品视频网| 国产成人高清激情视频在线观看| 中文字幕av无码一区二区三区| 久久午夜影视| 国产在线视频91| 亚洲成a人片77777精品| 91视频91自| 天天久久人人| 丝袜美女在线观看| 欧美性猛交xxxx乱大交蜜桃 | 国产精品主播直播| 91麻豆精品国产自产在线观看一区 | 麻豆传媒免费在线观看| 亚洲视频一二三区| 欧美激情视频免费看| 日韩电影免费观| 欧美一级黄色片| 人人妻人人澡人人爽人人精品| 国产在视频线精品视频www666| 日韩有码视频在线| 国产无遮无挡120秒| 久久精品日产第一区二区| 国产女同一区二区| 日日夜夜精品免费| 国产精品免费视频观看| 成人午夜免费在线| av日韩在线免费观看| 日韩精品视频免费专区在线播放| 人妻互换一区二区激情偷拍| 在线播放亚洲| 国产欧美日韩综合精品| 天天综合天天综合| 1024亚洲合集| 成人在线看视频| 91午夜精品| 久久激情五月丁香伊人| 精品国产午夜福利| 风间由美性色一区二区三区| 亚欧洲精品在线视频免费观看| wwww亚洲| 日韩欧美视频在线| 香蕉久久久久久久| 一本色道久久综合| 91最新国产视频| 国产女人在线观看| 精品久久久中文| 日本泡妞xxxx免费视频软件| 欧美高清视频手机在在线| 欧美一级大片在线观看| 国产 欧美 精品| 亚洲三级在线播放| 最新中文字幕免费视频| 麻豆精品av| 久久露脸国产精品| 国产美女永久免费| 国产精品久久久久9999吃药| 亚洲熟妇av一区二区三区| 成人看片黄a免费看视频| 久久精品久久久久| 一级特黄录像免费看| 中文字幕高清不卡| 日本a√在线观看| 国产精品一国产精品| 91a在线视频| 全部免费毛片在线播放一个| 一区二区三区在线视频观看| 午夜福利123| 一区二区中文| 91九色国产视频| 福利视频在线| 欧美一区二区三区播放老司机| 国产精品久久久久久成人| 日韩精品一级二级| 欧洲精品码一区二区三区免费看| av伦理在线| 精品久久久久香蕉网| 久久久久久免费观看| 国产精品一区在线观看乱码| japanese在线播放| silk一区二区三区精品视频| 欧美激情视频网站| 少妇精品高潮欲妇又嫩中文字幕| 亚洲午夜免费福利视频| 稀缺呦国内精品呦| 在线看片日韩| 激情五月综合色婷婷一区二区| 888av在线视频| 精品亚洲夜色av98在线观看| 国产婷婷色一区二区在线观看| 久久一区二区三区四区| 美女网站免费观看视频| 久久一区二区中文字幕| 91最新在线免费观看| 欧美四级在线| 日韩精品丝袜在线| japanese国产在线观看| 中文字幕在线观看不卡| 久草福利在线观看| 亚洲高清成人| 欧美日韩另类综合| 日韩成人在线电影| 欧美黑人巨大xxx极品| 蜜桃91麻豆精品一二三区| 红桃av永久久久| 男人的天堂av网| 国产精品亚洲第一区在线暖暖韩国| 国产精品av免费观看| 久久大胆人体视频| 国产精品99久久久久久www| 日本黄色片在线观看| 8v天堂国产在线一区二区| 欧美三级小视频| 99精品国产一区二区三区不卡| 中文字幕在线观看第三页| 91亚洲一区| 国产一区二区在线网站| 日本综合字幕| 欧美成人在线影院| 欧美欧美欧美| 欧美日韩成人综合天天影院| 久青草免费视频| 久久久久久夜精品精品免费| 日本特黄在线观看| 爽好多水快深点欧美视频| 蜜桃网站在线观看| 欧美色女视频| 精品毛片久久久久久| 四虎成人精品一区二区免费网站| 午夜伦理精品一区| 男人影院在线观看| 亚洲女成人图区| 亚洲成人久久精品| 欧美日韩一区成人| 国产女同在线观看| 亚洲女与黑人做爰| 中文字幕网站在线观看| 成人黄色777网| 男女视频在线观看网站| 久久一区欧美| 欧美精品自拍视频| 欧美在线视屏| 亚洲国产高清国产精品| 亚洲第一福利社区| 国产一区二区高清视频| 精品国产一级| 国产综合在线观看视频| 成人软件在线观看| 91福利视频网| 国产第一页在线| 欧美理论片在线观看| 免费高清在线观看| 中文字幕在线日韩 | 久久视频在线视频| 番号在线播放| 亚洲欧美色婷婷| 亚洲欧美日本在线观看| 精品国产凹凸成av人网站| 国产乱码久久久| 欧美日韩国产另类一区| 精品久久久久久久久久久国产字幕 | 东京一区二区| 98视频在线噜噜噜国产| 欧美卡一卡二| 久久99精品久久久久久青青91| 日本精品在线| 色噜噜狠狠色综合网图区| 国产在线超碰| 国产一区二区三区在线免费观看| 日本又骚又刺激的视频在线观看| 亚洲国产精品推荐| 日韩一级中文字幕| 亚洲精品久久久一区二区三区 | 欧美在线激情| 999国产精品一区| 成人18视频| 亚洲一二av| 999视频在线免费观看| 9999在线精品视频| 91亚洲人电影| 亚洲成人黄色| 国产精品视频免费一区二区三区| 网站一区二区| 国产精品一区而去| 成人搞黄视频| 牛人盗摄一区二区三区视频| 国产探花一区二区| 五月天久久狠狠| 亚欧美无遮挡hd高清在线视频| 最新欧美日韩亚洲| 午夜激情一区| 久久久一本二本三本| 视频一区二区欧美| 欧美成年人视频在线观看| 精品一区二区成人精品| 三上悠亚 电影| 91亚洲精华国产精华精华液| 免费在线观看你懂的| 国产女同互慰高潮91漫画| 日日碰狠狠添天天爽| 亚洲欧美偷拍三级| 日韩无码精品一区二区三区| 色8久久人人97超碰香蕉987| 一道本在线视频| 精品国产乱码久久久久久久 | 日韩一级特黄毛片| 99热在线精品观看| 男女视频在线看| 国产福利精品一区二区| 精品无码在线视频| 国产精品大尺度| 日韩xxx高潮hd| 在线看不卡av| 亚洲国产www| 永久免费精品影视网站| 亚洲综合伊人久久大杳蕉| 97国产在线视频| 日韩久久一区| 美女被啪啪一区二区| 五月精品视频| 免费在线激情视频| 国产精品白丝jk白祙喷水网站| 中文字幕影片免费在线观看| 国产精品久久看| 国产精品100| 欧美精品粉嫩高潮一区二区| 天天操天天干天天| 北条麻妃在线一区二区| 蜜桃麻豆av在线| 成人淫片在线看| 免费欧美激情| 日韩欧美精品免费| 免费成人在线影院| 亚洲综合自拍网| 亚洲欧美日韩在线不卡| 免费污污视频在线观看| 欧美一二三区在线观看| 成人在线免费电影| 国内精品国产三级国产在线专| 色8久久久久| 日韩jizzz| 国产一区二区三区的电影| 宇都宫紫苑在线播放| 日本一区二区视频在线| 在线观看日韩中文字幕| 欧美zozo另类异族| 麻豆传媒在线观看| 国产精品三级久久久久久电影| 国产在线播放精品| 成人在线视频一区二区三区| 久久一区视频| 无码h肉动漫在线观看| 亚洲成人动漫av| www.国产.com| 久久伊人色综合| 91精品视频一区二区| 午夜精品福利一区二区| 日韩综合在线视频| 特大黑人巨人吊xxxx| 午夜欧美视频在线观看| 国精产品一品二品国精品69xx| 久久av.com| 成人网av.com/| 国产奶头好大揉着好爽视频| 免费的成人av| 毛片视频免费播放| 欧美视频一区二区三区在线观看| 九一国产在线| 国产精品美女www爽爽爽视频| 精品影片在线观看的网站| www.com毛片| 久久亚洲精精品中文字幕早川悠里| 久久99精品波多结衣一区| 亚洲精品成人久久| 中老年在线免费视频| 欧美下载看逼逼| 日本中文字幕一区二区有限公司| 精品无码在线观看| 在线观看免费亚洲|