精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

91看片在线观看| 国产真实夫妇交换视频| 欧美va视频| 国产精品美女久久久久av爽李琼 | 精品人妻无码一区二区三区| 正在播放日韩精品| 久久精品日韩一区二区三区| 日本一区二区三区在线播放 | 亚洲视频在线观看一区二区| 精品视频国产| 日韩视频免费直播| 黄色免费福利视频| 求av网址在线观看| av欧美精品.com| 国产精品视频一| 国产一级在线观看视频| 欧美综合一区| 亚洲激情久久久| 久国产精品视频| 在线观看爽视频| 一区二区三区在线观看欧美| 日本在线观看一区二区| www.色日本| 美腿丝袜亚洲一区| 欧美一二三视频| 欧美卡一卡二卡三| 久久电影院7| 亚洲日韩欧美视频一区| 日本一区二区免费视频| 欧美黑粗硬大| 91九色02白丝porn| www在线观看免费| 国产一区久久精品| 中文字幕一区二区不卡| 欧美理论一区二区| 全国男人的天堂网| 国产福利91精品一区| 国产女人18毛片水18精品| 99热在线观看免费精品| 极品少妇一区二区三区| 欧美成人精品三级在线观看| 国产一二三四视频| 国产一区二区三区电影在线观看| 亚洲第一区第二区| 亚洲 自拍 另类 欧美 丝袜| 国产乱子伦农村叉叉叉| 久久久久久久极品内射| 欧美电影免费观看高清| 亚洲一区二区久久| 醉酒壮男gay强迫野外xx| 国产成人精品福利| 精品国产网站在线观看| 国产精品欧美性爱| 午夜久久av| 欧美一卡2卡3卡4卡| 亚洲人视频在线| 免费视频观看成人| 欧美日本一区二区三区四区| 三级a在线观看| 欧美日韩在线精品一区二区三区激情综合 | a级黄色片网站| 国产在线高潮| 一区二区三区av电影 | 老司机福利在线观看| 精品美女在线视频| xvideos成人免费中文版| 久久精品一区二区三区四区五区 | 91午夜精品| 亚洲精品一区二区三区影院| 97精品人妻一区二区三区蜜桃| 77成人影视| 精品无码久久久久久国产| 37p粉嫩大胆色噜噜噜| 最新亚洲精品| 深夜精品寂寞黄网站在线观看| 午夜精品久久久久99蜜桃最新版| 黄色香蕉视频在线观看| 国产伦精品一区二区三区视频金莲| 欧美日韩国产在线| 992kp快乐看片永久免费网址| yiren22亚洲综合| 91精品国产美女浴室洗澡无遮挡| 亚洲国产欧美日韩在线| 国产福利资源一区| 亚洲欧美色图片| 顶级黑人搡bbw搡bbbb搡| 欧美一区二区三区久久精品| 国内精品小视频在线观看| 久久夜色精品国产噜噜亚洲av| 免费在线观看精品| 成人av网站观看| 你懂的好爽在线观看| 国产精品免费久久| 日本大片免费看| 久久野战av| 日韩精品一区二区三区老鸭窝| 在线观看国产免费视频| 日韩电影二区| 久久久久中文字幕2018| 国产成人精品777777| 国产乱国产乱300精品| 久久久99爱| 成人在线免费看黄| 日本精品一区二区三区四区的功能| 第一区免费在线观看| 窝窝社区一区二区| 欧美大码xxxx| 国产免费www| 成人18视频在线播放| 亚洲蜜桃在线| 中文字幕人成乱码在线观看| 51精品视频一区二区三区| 性色av蜜臀av色欲av| 欧美1区2区3区| 国产精品成久久久久三级| 亚洲免费黄色片| 中文字幕在线观看一区| 激情六月丁香婷婷| 波多野结衣欧美| 久久精品国产99国产精品澳门| 久久久久久久久久久久久av| 国产精品一二三区| 亚洲第一综合| 欧美大片1688| 亚洲福利精品在线| 亚洲一级生活片| 久久草av在线| 国产99久久久精品| 国产成人综合av| 少妇高潮一区二区三区69| ㊣最新国产の精品bt伙计久久| aaaaaa亚洲| 日韩动漫一区| 亚洲18私人小影院| 北条麻妃一二三区| 亚洲品质自拍视频| 邪恶网站在线观看| 激情综合网站| 日本欧美一二三区| 欧美套图亚洲一区| 欧美日韩精品在线播放| 国产精品手机在线观看| 欧美日韩国产综合网| 亚洲一区二区三区久久| 黄网站app在线观看| 亚洲一级片在线观看| 欧美69精品久久久久久不卡| 香蕉视频官网在线观看日本一区二区| 日本一区二区三区四区视频| 欧美日本网站| 色噜噜狠狠成人中文综合| 中文在线一区二区三区| 日韩午夜在线电影| 国产麻豆乱码精品一区二区三区| av免费网站在线| 91精品蜜臀在线一区尤物| 国产福利视频网站| 国产一区视频导航| 国产激情在线看| 精品久久国产一区| 欧美日韩xxx| 黄色av小说在线观看| 午夜精品免费在线| 久久人人妻人人人人妻性色av| 激情欧美日韩一区| 精品毛片久久久久久| 五月天av在线| 伊人成人开心激情综合网| 一区二区日韩视频| 亚洲卡通动漫在线| 荫蒂被男人添免费视频| 久久久久久网| 亚洲三区在线| 在线日韩成人| 热99久久精品| 免费观看久久久久| 亚洲成人xxx| 91精品国产综合久久久蜜臀九色| 国产亚洲欧美日韩日本| 免费av不卡在线| 亚洲精品国产日韩| 日韩国产欧美一区| 国产精品一区二区三区四区在线观看| 久久99国产综合精品女同 | 日韩av在线播放资源| 无码一区二区三区| 最新国产精品久久精品| 精品久久久久久无码人妻| 久久精品女人天堂| 国产女人18毛片| 亚洲国产网址| 亚洲一区制服诱惑| 亚洲插插视频| 久热精品视频在线观看| 色一情一乱一乱一区91av| 欧美在线观看你懂的| 欧美成人三级视频| 国产婷婷色一区二区三区四区| 午夜免费一级片| 狂野欧美一区| 精品国产av无码一区二区三区| 国内精品久久久久久久久电影网 | 国产欧美一区二| 日韩视频不卡| 一区二区三区四区免费视频| 免费看成人人体视频| 国产欧美va欧美va香蕉在| а_天堂中文在线| 久久精品中文字幕一区| 视频国产在线观看| 日韩视频国产视频| 中文字幕乱码人妻无码久久 | 欧美大片免费看| 岛国大片在线观看| 亚洲国产精品嫩草影院久久| 国产精品永久久久久久久久久| 欧美色播在线播放| 一级黄色录像视频| 国产精品美女久久久久高潮| 亚洲一级中文字幕| 成人美女视频在线观看| 日韩av片免费观看| 蜜臀久久99精品久久久久久9| 亚洲 高清 成人 动漫| 欧美片第1页综合| 中文字幕不卡每日更新1区2区| 九热爱视频精品视频| 精品国产福利| 成人另类视频| 91网站在线免费观看| 精品久久在线| 国产精品www网站| 卡通欧美亚洲| 奇米成人av国产一区二区三区| 久久香蕉av| 久久成人精品视频| 久热国产在线| 久久精品国产2020观看福利| 免费在线你懂的| 色噜噜狠狠狠综合曰曰曰88av| 国家队第一季免费高清在线观看| 日韩电影大全免费观看2023年上| 囯产精品一品二区三区| 精品国产91久久久久久久妲己| 国产黄色av网站| 日韩三级在线观看| 午夜久久久久久久久久| 欧美成人猛片aaaaaaa| 精品久久在线观看| 欧美tickling网站挠脚心| 精品久久久久久亚洲综合网站| 日韩欧美高清一区| 亚洲毛片在线播放| 亚洲国产精品悠悠久久琪琪| 亚州男人的天堂| 国产亚洲精品综合一区91| 国产在线视频网址| 自拍偷拍亚洲在线| 国产在线激情| 欧美国产视频一区二区| 草草视频在线| 国产成人精品一区二区三区| 成人国产激情在线| 91手机视频在线观看| 中文无码日韩欧| 精品国产乱码久久久久久蜜柚| 亚洲调教一区| 亚洲欧美日韩精品在线| 欧美日本一区二区视频在线观看 | 亚洲啪啪av| 亚洲最新av| 天天夜碰日日摸日日澡性色av| 可以看av的网站久久看| 亚洲欧美自偷自拍另类| 国产精品亚洲午夜一区二区三区 | 亚洲高清精品视频| 日韩成人在线电影网| 久久天堂电影| 久久综合国产精品台湾中文娱乐网| 毛片在线导航| 国产成人在线亚洲欧美| 日韩高清二区| 欧美一区二区高清在线观看| 91精品啪在线观看国产18| 国产精彩视频一区二区| 日韩精品一二区| 国产精品无码自拍| 国产亚洲精品bt天堂精选| 91在线播放观看| 日韩欧美亚洲成人| 国产99久久九九精品无码免费| 亚洲国产精品99久久| 婷婷在线视频| 97在线免费观看| 国产精品一级在线观看| 久久精品国产第一区二区三区最新章节| 日本激情一区| 美女日批免费视频| 精品一区精品二区高清| 久久国产劲爆∧v内射| 亚洲国产精品v| 日韩高清精品免费观看| 欧美日本国产一区| 欧美一级片免费| 久久久国产一区| 美女一区网站| 国产精品中出一区二区三区| 成人免费av| 亚洲 高清 成人 动漫| 国产美女主播视频一区| 少妇无套高潮一二三区| 亚洲小说欧美激情另类| 91国产精品一区| 亚洲欧美国产视频| 18video性欧美19sex高清| 成人xxxx视频| 精品国产91乱码一区二区三区四区| 国产夫妻自拍一区| 精品一区二区三区免费| 精品无码人妻一区二区免费蜜桃 | 国产福利资源在线| 在线精品播放av| 欧美成人黑人| 免费在线成人av电影| 一区在线播放| 久久久久久久久久久影视| 国产精品美女视频| 国产在线观看第一页| 亚洲欧美国产日韩中文字幕| 涩涩视频在线| 精品综合在线| 野花国产精品入口| 成人免费看片载| 亚洲一区免费在线观看| 性色av蜜臀av| 欧美乱妇高清无乱码| 经典三级久久| 夜夜爽99久久国产综合精品女不卡 | 色影院视频在线| 国产精品欧美一区二区| 国产日产精品_国产精品毛片| 妺妺窝人体色www在线小说| 成人黄色在线视频| 国产精品18p| 亚洲国产天堂久久综合网| heyzo高清在线| 国产一区二区三区奇米久涩 | 亚洲精品欧美专区| 99久久夜色精品国产亚洲| 久久中文字幕在线| 亚洲精品国产九九九| 亚洲熟妇无码一区二区三区导航| 粉嫩久久99精品久久久久久夜| 国产一级生活片| 亚洲激情在线观看视频免费| 老牛影视精品| 日本高清视频一区二区三区| 日韩高清电影一区| 亚洲少妇xxx| 日韩免费看网站| 岛国av免费在线观看| 老牛影视免费一区二区| 狂野欧美一区| 91精品国产闺蜜国产在线闺蜜| 日韩一区二区三区av| 国产网红在线观看| 麻豆久久久9性大片| 日韩高清一级片| 极品颜值美女露脸啪啪| 精品国产污污免费网站入口| 综合日韩av| 一道精品一区二区三区| 国产精品亚洲专一区二区三区 | 欧美日韩另类国产亚洲欧美一级| 好操啊在线观看免费视频| 国产精品久久久对白| 99热精品在线观看| 一级在线观看视频| 日韩欧美第一区| 一本大道色婷婷在线| 亚洲三区四区| 99精品桃花视频在线观看| 自拍偷拍色综合| 九九精品在线观看| 少妇高潮一区二区三区| av网站在线不卡| 亚洲国产精品一区二区尤物区| 美女做暖暖视频免费在线观看全部网址91 | 久久偷看各类女兵18女厕嘘嘘| 成人看片黄a免费看视频| 中文字幕在线观看第三页| 一级日本不卡的影视| 国产经典自拍视频在线观看| 99视频国产精品免费观看| 日韩电影在线一区二区三区| 国产亚洲第一页| 中文字幕视频一区二区在线有码| а√中文在线天堂精品| 国产色视频在线播放| 欧美日韩国内自拍|