『壹』 211機械專業本科生去西飛集團還是長江儲存好
211機械專業本科生去西飛集團還是長江儲存好。
西飛對學生的待遇挺一般的。
如果想投身機械的半導體行業,長江存儲是一個不錯的平台。半導體現在得到國家扶持,而且投資是最大的半導體公司。如果個人條件允許可以考慮到長江存儲工作。
長江存儲成立短短幾年年,就已經發布了128層的快閃記憶體產品。半導體行業評論員、芯思想研究院創始人趙元闖認為,長江存儲此次發布128層產品意味著其朝快閃記憶體行業第一梯隊邁進。
『貳』 大家來做做這份筆試題2
面試題?
16.d 17.b 18.d 19.b 20.d
21.d 22.b 23.d 24.b 25.b
26.d 27.對 28.d 29.c 30.b
31.d 32.d
『叄』 各大公司筆試題及答案
騰訊筆試題:const的含義及實現機制
const的含義及實現機制,比如:const int i,是怎麼做到i只可讀的?
const用來說明所定義的變數是只讀的。
這些在編譯期間完成,編譯器可能使用常數直接替換掉對此變數的引用。
更多閱讀:
http://www.92ask.net/Archive/?action=show&id=18
初探編譯器static、const之實現原理
騰訊筆試題:買200返100優惠券,實際上折扣是多少?
到商店裡買200的商品返還100優惠券(可以在本商店代替現金)。請問實際上折扣是多少?
由於優惠券可以代替現金,所以可以使用200元優惠券買東西,然後還可以獲得100元的優惠券。
假設開始時花了x元,那麼可以買到 x + x/2 + x/4 + ...的東西。所以實際上折扣是50%.(當然,大部分時候很難一直兌換下去,所以50%是折扣的上限)
如果使用優惠券買東西不能獲得新的優惠券,那麼
總過花去了200元,可以買到200+100元的商品,所以實際折扣為 200/300 = 67%.
騰訊筆試題:tcp三次握手的過程,accept發生在三次握手哪個階段?
accept發生在三次握手之後。
第一次握手:客戶端發送syn包(syn=j)到伺服器。
第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個ASK包(ask=k)。
第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器發送確認包ACK(ack=k+1)。
三次握手完成後,客戶端和伺服器就建立了tcp連接。這時可以調用accept函數獲得此連接。
騰訊筆試題:用UDP協議通訊時怎樣得知目標機是否獲得了數據包
用UDP協議通訊時怎樣得知目標機是否獲得了數據包?
可以在每個數據包中插入一個唯一的ID,比如timestamp或者遞增的int。
發送方在發送數據時將此ID和發送時間記錄在本地。
接收方在收到數據後將ID再發給發送方作為回應。
發送方如果收到回應,則知道接收方已經收到相應的數據包;如果在指定時間內沒有收到回應,則數據包可能丟失,需要重復上面的過程重新發送一次,直到確定對方收到。
關於UDP協議的簡單介紹,可以參考
http://ke..com/view/30509.htm
騰訊筆試題:統計論壇在線人數分布
求一個論壇的在線人數,假設有一個論壇,其注冊ID有兩億個,每個ID從登陸到退出會向一個日誌文件中記下登陸時間和退出時間,要求寫一個演算法統計一天中論壇的用戶在線分布,取樣粒度為秒。
一天總共有 3600*24 = 86400秒。
定義一個長度為86400的整數數組int delta[86400],每個整數對應這一秒的人數變化值,可能為正也可能為負。開始時將數組元素都初始化為0。
然後依次讀入每個用戶的登錄時間和退出時間,將與登錄時間對應的整數值加1,將與退出時間對應的整數值減1。
這樣處理一遍後數組中存儲了每秒中的人數變化情況。
定義另外一個長度為86400的整數數組int online_num[86400],每個整數對應這一秒的論壇在線人數。
假設一天開始時論壇在線人數為0,則第1秒的人數online_num[0] = delta[0]。第n+1秒的人數online_num[n] = online_num[n-1] + delta[n]。
這樣我們就獲得了一天中任意時間的在線人數。
騰訊筆試題:從10G個數中找到中數
在一個文件中有 10G 個整數,亂序排列,要求找出中位數。內存限制為 2G。
不妨假設10G個整數是64bit的。
2G內存可以存放256M個64bit整數。
我們可以將64bit的整數空間平均分成256M個取值范圍,用2G的內存對每個取值范圍內出現整數個數進行統計。這樣遍歷一邊10G整數後,我們便知道中數在那個范圍內出現,以及這個范圍內總共出現了多少個整數。
如果中數所在范圍出現的整數比較少,我們就可以對這個范圍內的整數進行排序,找到中數。如果這個范圍內出現的整數比較多,我們還可以採用同樣的方法將此范圍再次分成多個更小的范圍(256M=2^28,所以最多需要3次就可以將此范圍縮小到1,也就找到了中數)。
騰訊筆試題:兩個整數集合A和B,求其交集
兩個整數集合A和B,求其交集。
1. 讀取整數集合A中的整數,將讀到的整數插入到map中,並將對應的值設為1。
2. 讀取整數集合B中的整數,如果該整數在map中並且值為1,則將此數加入到交集當中,並將在map中的對應值改為2。
通過更改map中的值,避免了將同樣的值輸出兩次。
騰訊筆試題:找出1到10w中沒有出現的兩個數字
有1到10w這10w個數,去除2個並打亂次序,如何找出那兩個數?
申請10w個bit的空間,每個bit代表一個數字是否出現過。
開始時將這10w個bit都初始化為0,表示所有數字都沒有出現過。
然後依次讀入已經打亂循序的數字,並將對應的bit設為1。
當處理完所有數字後,根據為0的bit得出沒有出現的數字。
首先計算1到10w的和,平方和。
然後計算給定數字的和,平方和。
兩次的到的數字相減,可以得到這兩個數字的和,平方和。
所以我們有
x + y = n
x^2 + y^2 = m
解方程可以得到x和y的值。
騰訊筆試題:需要多少只小白鼠才能在24小時內找到毒葯
有1000瓶水,其中有一瓶有毒,小白鼠只要嘗一點帶毒的水24小時後就會死亡,至少要多少只小白鼠才能在24小時時鑒別出那瓶水有毒?
最容易想到的就是用1000隻小白鼠,每隻喝一瓶。但顯然這不是最好答案。
既然每隻小白鼠喝一瓶不是最好答案,那就應該每隻小白鼠喝多瓶。那每隻應該喝多少瓶呢?
首先讓我們換種問法,如果有x只小白鼠,那麼24小時內可以從多少瓶水中找出那瓶有毒的?
由於每隻小白鼠都只有死或者活這兩種結果,所以x只小白鼠最大可以表示2^x種結果。如果讓每種結果都對應到某瓶水有毒,那麼也就可以從2^x瓶水中找到有毒的那瓶水。那如何來實現這種對應關系呢?
第一隻小白鼠喝第1到2^(x-1)瓶,第二隻小白鼠喝第1到第2^(x-2)和第2^(x-1)+1到第2^(x-1) + 2^(x-2)瓶....以此類推。
回到此題,總過1000瓶水,所以需要最少10隻小白鼠。
騰訊筆試題:根據上排的數填寫下排的數,並滿足要求。
根據上排給出十個數,在其下排填出對應的十個數, 要求下排每個數都是上排對應位置的數在下排出現的次數。上排的數:0,1,2,3,4,5,6,7,8,9。
騰訊筆試題:判斷數字是否出現在40億個數中?
給40億個不重復的unsigned int的整數,沒排過序的,然後再給幾個數,如何快速判斷這幾個數是否在那40億個數當中?
答案:
unsigned int 的取值范圍是0到2^32-1。我們可以申請連續的2^32/8=512M的內存,用每一個bit對應一個unsigned int數字。首先將512M內存都初始化為0,然後每處理一個數字就將其對應的bit設置為1。當需要查詢時,直接找到對應bit,看其值是0還是1即 可。
1、請定義一個宏,比較兩個數a、b的大小,不能使用大於、小於、if語句#define Max(a,b) ( a/b)?a:b
2、如何輸出源文件的標題和目前執行行的行數
int line = __LINE__;
char *file = __FILE__;
cout<<"file name is "<<(file)<<",line is "<
3、兩個數相乘,小數點後位數沒有限制,請寫一個高精度演算法
4、寫一個病毒
while (1)
{
int *p = new int[10000000];
}
5、不使用額外空間,將 A,B兩鏈表的元素交*歸並
6、將樹序列化 轉存在數組或 鏈表中
struct st{
int i;
short s;
char c;
};
sizeof(struct st);
7、
char * p1;
void * p2;
int p3;
char p4[10];
sizeof(p1...p4) =?
8、
4,4,4,10
二分查找
快速排序
雙向鏈表的刪除結點
面試基本上都是和項目相關的,並當場說幾個程序題的輸出,不能用草稿紙
微軟筆試題:寫程序找出二叉樹的深度
一個樹的深度等於max(左子樹深度,右子樹深度)+1。可以使用遞歸實現。
假設節點為定義為
1. struct Node {
2. Node* left;
3. Node* right;
4. };
5. int GetDepth(Node* root) {
6. if (NULL == root) {
7. return 0;
8. }
9. int left_depth = GetDepth(root->left);
10. int right_depth = GetDepth(root->right);
11. return left_depth > right_depth ? left_depth + 1 : right_depth + 1;
12. }
微軟筆試題:利用天平砝碼,三次將140克的鹽 分成50、90克兩份?
有一個天平,2克和7克砝碼各一個。如何利用天平砝碼在三次內將140克鹽分成50,90克兩份。
第一種方法:
第一次:先稱 7+2克鹽 (相當於有三個法碼2,7,9)
第二次:稱2+7+9=18克鹽 (相當於有2,7,9,18四個法碼)
第三次:稱7+18=x+2,得出x是23,23+9+18=50克鹽.
剩下就是90克了.
第二種方法:
1.先把140克鹽分為兩份,每份70克
2.在把70克分為兩份,每份35克
3.然後把兩個砝碼放在天平兩邊,把35克麵粉分成兩份也放在兩邊(15+7=20+2)
現在有四堆麵粉70,35,15,20,分別組合得到
70+20=90
35+15=50
微軟筆試題:地球上有多少個滿足這樣條件的點
站在地球上的某一點,向南走一公里,然後向東走一公里,最後向北走一公里,回到了原點。地球上有多少個滿足這樣條件的點?
北極點滿足這個條件。
距離南極點很近的一個圈上也滿足這個條件。在這個圓圈上,向南走一公里,然後向東走一公里恰好繞南極點一圈,向北走一公里回到原點。
所以地球上總共有無數點滿足這個條件。
或者
首先,在地球表面上,南北走向是沿著經度方向,東西是沿著緯度方向。如果你一直往北走就會達到北極點,往南走就到了南極點。因此,向南走一公里,然 後向東走一公里,最後向北走一公里,回到了原點,一種情況就是,出發點是在北極點,這樣向南走一公里,然後向東走任意幾公里,最後向北走一公里,最後都會 回到北極點;
其次,可以這么認為如果從A點向南走一公里到達B點,那麼若向東走一公里能回到B,那麼最後向北走一公里,就能回到了原點A。這樣就可以先找出在南 北極點附近找出繞一周只有1公里的圈,那麼這個圈落在南極附近時,只要往北推1公里,此時該圈上的點都能滿足;若這個圈落在北極附近時,能不能往北推1公 里我就不分析了。反正在南極附近能找到任意多個點就能回到這個問題了
微軟筆試題:正確標注水果籃
有三個水果籃。其中一個裡面只有蘋果,一個裡面只有橘子,另外一個既有蘋果又有橘子。每個水果籃上都有標簽,但標簽都是錯的。如何檢查某個水果籃中的一個水果,然後正確標注每個水果籃?
從標注成既有蘋果也有橘子的水果籃中選取一個進行檢查。
如果是橘子,則此籃中只有橘子;標有橘子的水果籃中只有蘋果;標有蘋果的水果籃中既有蘋果也有橘子。
如果是蘋果,則此籃中只有蘋果;標有蘋果的水果籃中只有橘子;標有橘子的水果籃中既有蘋果也有橘子。
微軟筆試題:不利用浮點運算,畫一個圓
不利用浮點運算,在屏幕上畫一個圓 (x**2 + y**2 = r**2,其中 r 為正整數)。
考慮到圓的對稱性,我們只需考慮第一象限即可。
等價於找到一條連接點(0,r)到點(r,0)的一條曲線,曲線上的點距圓心(0,0)的距離最接近 r。
我們可以從點(0,r)開始,搜索右(1,r),下(0,r-1),右下(1,r-1)三個點到圓心的距離,選擇距圓心距離最接近 r 的點作為下一個點。反復進行這種運算,直至到達點(r,0)。
由於不能利用浮點運算,所以距離的比較只能在距離平方的基礎上進行。也就是比較 x**2 + y**2 和 r**2之間的差值。
微軟筆試題:將一個句子按單詞反序
將一個句子按單詞反序。比如 「hi com mianshiti」,反序後變為 「mianshiti com hi」。
可以分兩步走:
第一步按找字母反序,「hi com mianshiti」 變為 「itihsnaim moc udiab ih」。
第二部將每個單詞中的字母反序,「itihsnaim moc udiab ih」 變成 「mianshiti com hi」。
這個方法可以在原字元串上進行,只需要幾個整數變數來保持指針即可,空間復雜度低。
微軟筆試題:計算n bit的整數中有多少bit 為1
設此整數為x。
方法1:
讓此整數除以2,如果余數為1,說明最後一位是1,統計值加1。
將除得的結果進行上面運算,直到結果為0。
方法2:
考慮除法復雜度有些高,可以使用移位操作代替除法。
將 x 和 1 進行按位與操作(x&1),如果結果為1,說明最後一位是1,統計值加1。
將x 向右一位(x >> 1),重復上面過程,直到移位後結果為0。
方法3:
如果需要統計很多數字,並且內存足夠大,可以考慮將每個數對應的bit為1的數量記錄下來,這樣每次計算只是一次查找操作。
1. int n = 0;while (x)
2. {
3. xx = x & (x - 1);
4. n++;
5. }
6. return n;
微軟筆試題:快速求取一個整數的7倍
乘法相對比較慢,所以快速的方法就是將這個乘法轉換成加減法和移位操作。
可以將此整數先左移三位(×8)然後再減去原值:X << 3 - X。
微軟筆試題:判斷一個數是不是2的n次冪
設要判斷的數是無符號整數X。
首先判斷X是否為0,如果為0則不是2的n次冪,返回。
X和X-1進行按位與操作,如果結果是0,則說明這個數是2的n次冪;如果結果非0,則說明這個數不是2 的n次冪。
證明:
如果是2的n次冪,則此數用二進製表示時只有一位是1,其它都是0。減1後,此位變成0,後面的位變成1,所以按位與後結果是0。
如果不是2的n次冪,則此數用二進製表示時有多位是1。減1後,只有最後一個1變成0,前面的 1還是1,所以按位與後結果不是0。
微軟筆試題:三隻螞蟻不相撞的概率是多少
在三角形的三個頂點上各有一隻螞蟻,它們向另一個頂點運動,目標隨機(可能為另外兩個頂點的任意一個)。問三隻螞蟻不相撞的概率是多少?
如果螞蟻順時針爬行記為0,逆時針爬行記為1。那麼三隻螞蟻的狀態可能為000,001,...,110,111中的任意一個,且為每種狀態的概率相等。在這8種狀態中,只有000和111可以避免相撞,所以螞蟻不相撞的概率是1/4。
微軟筆試題:判斷數組中是否包含重復數字
給定一個長度為N的數組,其中每個元素的取值范圍都是1到N。判斷數組中是否有重復的數字。(原數組不必保留)
給定一個長度為N的數組,其中每個元素的取值范圍都是1到N。判斷數組中是否有重復的數字。(原數組不必保留)
微軟筆試題:如何將蛋糕切成相等的兩份
一塊長方形的蛋糕,其中有一個小長方形的空洞(角度任意)。使用一把直刀,如何一刀將蛋糕切成相等的兩份?
通過長方形中心的的任意直線都能將長方形等分,所以連接兩個長方形的中心點的直線可以等分這個蛋糕。
一個沒有排序的鏈表,比如list={a,l,x,b,e,f,f,e,a,g,h,b,m},請去掉重復項,並保留原順序,以上鏈表去掉重復項後為newlist={a,l,x,b,e,f,g,h,m},請寫出一個高效演算法(時間比空間更重要)。
建立一個hash_map,key為鏈表中已經遍歷的節點內容,開始時為空。
從頭開始遍歷鏈表中的節點:
- 如果節點內容已經在hash_map中存在,則刪除此節點,繼續向後遍歷;
- 如果節點內容不在hash_map中,則保留此節點,將節點內容添加到hash_map中,繼續向後遍歷。
微軟筆試題:小明一家5口如何過橋?
小明一家過一座橋,過橋時是黑夜,所以必須有燈。現在小明過橋要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的媽媽要8秒,小明的爺爺要12秒。每次此橋最多可過兩人,而過橋的速度依過橋最慢者而定,而且燈在點燃後30秒就會熄滅。問:小明一家如何過橋?
小明與弟弟過去,小明回來,用4s;
媽媽與爺爺過去,弟弟回來,用15s;
小明與弟弟過去,小明回來,用4s;
小明與爸爸過去,用6s;
總共用29s。
題目的關鍵是讓速度差不多的一起走,免得過於拖累較快的一個人。
微軟筆試題:編一個程序求質數的和
編一個程序求質數的和,例如F(7) = 2+3+5+7+11+13+17=58。
方法1:
對於從2開始的遞增整數n進行如下操作:
用 [2,n-1] 中的數依次去除n,如果余數為0,則說明n不是質數;如果所有餘數都不是0,則說明n是質數,對其進行加和。
空間復雜度為O(1),時間復雜度為O(n^2),其中n為需要找到的最大質數值(例子對應的值為17)。
方法2:
可以維護一個質數序列,這樣當需要判斷一個數是否是質數時,只需判斷是否能被比自己小的質數整除即可。
對於從2開始的遞增整數n進行如下操作:
用 [2,n-1] 中的質數(2,3,5,7,開始時此序列為空)依次去除n,如果余數為0,則說明n不是質數;如果所有餘數都不是0,則說明n是質數,將此質數加入質數序列,並對其進行加和。
空間復雜度為O(m),時間復雜度為O(mn),其中m為質數的個數(例子對應的值為7),n為需要找到的最大質數值(例子對應的值為17)。
方法3:
也可以不用除法,而用加法。
申請一個足夠大的空間,每個bit對應一個整數,開始將所有的bit都初始化為0。
對於已知的質數(開始時只有2),將此質數所有的倍數對應的bit都改為1,那麼最小的值為0的bit對應的數就是一個質數。對新獲得的質數的倍數也進行標注。
對這樣獲得的質數序列累加就可以獲得質數和。
空間復雜度為O(n),時間負責度為O(n),其中n為需要找到的最大質數值(例子對應的值為17)。
『肆』 長江存儲的輪班工程師的工作怎麼樣就想問下坑不坑。
工作待遇可以的,不坑的,工程師的工資工程師的職位都是很高的,受到人尊敬的。
『伍』 急求~~~有沒有長江大學2009年—2010學年第一學期《計算機基礎》課程考試試卷A卷的答案啊~
我是學計算機的,給你答案參考一下。CADCC CABCD DABBC DA
『陸』 資料庫經典筆試題和面試題答案
如下這些有關資料庫知識考查的經典筆試題,非常全面,對計算機專業畢業生參加筆試會很有幫助,建議大家收藏。
一、選擇題
1. 下面敘述正確的是___c___。
A、演算法的執行效率與數據的存儲結構無關
B、演算法的空間復雜度是指演算法程序中指令(或語句)的條數
C、演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
D、以上三種描述都不對
2. 以下數據結構中不屬於線性數據結構的是___c___。
A、隊列B、線性表C、二叉樹D、棧
3. 在一棵二叉樹上第5層的結點數最多是__b____。2的(5-1)次方
A、8 B、16 C、32 D、15
4. 下面描述中,符合結構化程序設計風格的是___a___。
A、使用順序、選擇和重復(循環)三種基本控制結構表示程序的控制邏輯
B、模塊只有一個入口,可以有多個出口
C、注重提高程序的執行效率 D、不使用goto語句
5. 下面概念中,不屬於面向對象方法的是___d___。
A、對象 B、繼承 C、類 D、過程調用
6. 在結構化方法中,用數據流程圖(DFD)作為描述工具的軟體開發階段是___b___。
A、可行性分析 B、需求分析 C、詳細設計 D、程序編碼
7. 在軟體開發中,下面任務不屬於設計階段的是__d____。
A、數據結構設計 B、給出系統模塊結構 C、定義模塊演算法 D、定義需求並建立系統模型
8. 資料庫系統的核心是___b___。
A、數據模型 B、資料庫管理系統 C、軟體工具 D、資料庫
9. 下列敘述中正確的是__c____。
A、資料庫是一個獨立的系統,不需要操作系統的支持
B、資料庫設計是指設計資料庫管理系統
C、資料庫技術的根本目標是要解決數據共享的問題
D、資料庫系統中,數據的物理結構必須與邏輯結構一致
10. 下列模式中,能夠給出資料庫物理存儲結構與物理存取方法的是___a___。
A、內模式 B、外模式 C、概念模式 D、邏輯模式
11. Visual FoxPro資料庫文件是___d___。
A、存放用戶數據的文件 B、管理資料庫對象的系統文件
C、存放用戶數據和系統的文件 D、前三種說法都對
12. SQL語句中修改表結構的命令是___c___。
A、MODIFY TABLE B、MODIFY STRUCTURE
C、ALTER TABLE D、ALTER STRUCTURE
13. 如果要創建一個數據組分組報表,第一個分組表達式是"部門",第二個分組表達式是"性別",第三個分組表達式是"基本工資",當前索引的索引表達式應當是__b____。
A、部門+性別+基本工資 B、部門+性別+STR(基本工資)
C、STR(基本工資)+性別+部門 D、性別+部門+STR(基本工資)
14. 把一個項目編譯成一個應用程序時,下面的敘述正確的是___a___。
A、所有的項目文件將組合為一個單一的應用程序文件
B、所有項目的包含文件將組合為一個單一的應用程序文件
C、所有項目排除的文件將組合為一個單一的應用程序文件
D、由用戶選定的項目文件將組合為一個單一的應用程序文件
15. 資料庫DB、資料庫系統DBS、資料庫管理系統DBMS三者之間的關系是_a___。
A、DBS包括DB和DBMS B、DBMS包括DB和DBS
C、DB包括DBS和DBMS D、DBS就是DB,也就是DBMS
16. 在"選項"對話框的"文件位置"選項卡中可以設置___b___。
A、表單的默認大小 B、默認目錄
C、日期和時間的顯示格式 D、程序代碼的顏色
17. 要控制兩個表中數據的完整性和一致性可以設置"參照完整性",要求這兩個表_a_。
A、是同一個資料庫中的兩個表 B、不同資料庫中的兩個表
C、兩個自由表 D、一個是資料庫表另一個是自由表
18. 定位第一條記錄上的命令是___a___。
A、GO TOP B、GO BOTTOM C、GO 6 D、SKIP
19. 在關系模型中,實現"關系中不允許出現相同的元組"的約束是通過__b____。
A、候選鍵 B、主鍵 C、外鍵 D、超鍵
20. 設當前資料庫有10條記錄(記錄未進行任何索引),在下列三種情況下,當前記錄號為1時;EOF()為真時;BOF()為真時,命令?RECN()的結果分別是___a___。
A、1,11,1 B、1,10,1 C、1,11,0 D、1,10,0
21. 下列表達式中結果不是日期型的是___c___。
A、CTOD("2000/10/01") B、{^99/10/01}+365
C、VAL("2000/10/01") D、DATE()
22. 只有滿足聯接條件的記錄才包含在查詢結果中,這種聯接為___c___。
A、左聯接 B、右聯接 C、內部聯接 D、完全聯接
23. 索引欄位值不唯一,應該選擇的索引類型為___b___。
A、主索引 B、普通索引 C、候選索引 D、唯一索引
24. 執行SELECT 0選擇工作區的結果是___b___。
A、選擇了0號工作區 B、選擇了空閑的最小號工作區
C、關閉選擇的工作區 D、選擇已打開的工作區
25. 從資料庫中刪除表的命令是___a___。
A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE
26. DELETE FROM S WHERE 年齡>60語句的功能是__b____。
A、從S表中徹底刪除年齡大於60歲的記錄
B、S表中年齡大於60歲的記錄被加上刪除標記
C、刪除S表 D、刪除S表的年齡列 1 2
『柒』 常見的數據分析師筆試題目及答案
常見的數據分析師筆試題目及答案
導讀:探索性數據分析側重於在數據之中發現新的特徵,而驗證性數據分析則側重於已有假設的證實或證偽。以下是由我J.L為您整理推薦的實用的應聘筆試題目和經驗,歡迎參考閱讀。
1、海量日誌數據,提取出某日訪問網路次數最多的那個IP。
首先是這一天,並且是訪問網路的日誌中的IP取出來,逐個寫入到一個大文件中。注意到IP是32位的,最多有個2^32個IP。同樣可以採用映射的方 法,比如模1000,把整個大文件映射為1000個小文件,再找出每個小文中出現頻率最大的IP(可以採用hash_map進行頻率統計,然後再找出頻率 最大的幾個)及相應的頻率。然後再在這1000個最大的IP中,找出那個頻率最大的IP,即為所求。
或者如下闡述:
演算法思想:分而治之+Hash
1.IP地址最多有2^32=4G種取值情況,所以不能完全載入到內存中處理;
2.可以考慮採用“分而治之”的思想,按照IP地址的Hash(IP)24值,把海量IP日誌分別存儲到1024個小文件中。這樣,每個小文件最多包含4MB個IP地址;
3.對於每一個小文件,可以構建一個IP為key,出現次數為value的Hash map,同時記錄當前出現次數最多的那個IP地址;
4.可以得到1024個小文件中的出現次數最多的IP,再依據常規的排序演算法得到總體上出現次數最多的'IP;
2、搜索引擎會通過日誌文件把用戶每次檢索使用的所有檢索串都記錄下來,每個查詢串的長度為1-255位元組。
假設目前有一千萬個記錄(這些查詢串的重復度比較高,雖然總數是1千萬,但如果除去重復後,不超過3百萬個。一個查詢串的重復度越高,說明查詢它的用戶越多,也就是越熱門。),請你統計最熱門的10個查詢串,要求使用的內存不能超過1G。
典型的Top K演算法,還是在這篇文章里頭有所闡述,
文中,給出的最終演算法是:
第一步、先對這批海量數據預處理,在O(N)的時間內用Hash表完成統計(之前寫成了排序,特此訂正。July、2011.04.27);
第二步、藉助堆這個數據結構,找出Top K,時間復雜度為N‘logK。
即,藉助堆結構,我們可以在log量級的時間內查找和調整/移動。因此,維護一個K(該題目中是10)大小的小根堆,然後遍歷300萬的 Query, 分別和根元素進行對比所以,我們最終的時間復雜度是:O(N) + N’*O(logK),(N為1000萬,N’為300萬)。ok,更多,詳情,請參考原文。
或者:採用trie樹,關鍵字域存該查詢串出現的次數,沒有出現為0。最後用10個元素的最小推來對出現頻率進行排序。
3、有一個1G大小的一個文件,裡面每一行是一個詞,詞的大小不超過16位元組,內存限制大小是1M。返回頻數最高的100個詞。
方案:順序讀文件中,對於每個詞x,取hash(x)P00,然後按照該值存到5000個小文件(記為x0,x1,…x4999)中。這樣每個文件大概是200k左右。
如果其中的有的文件超過了1M大小,還可以按照類似的方法繼續往下分,直到分解得到的小文件的大小都不超過1M。
對每個小文件,統計每個文件中出現的詞以及相應的頻率(可以採用trie樹/hash_map等),並取出出現頻率最大的100個詞(可以用含 100 個結點的最小堆),並把100個詞及相應的頻率存入文件,這樣又得到了5000個文件。下一步就是把這5000個文件進行歸並(類似與歸並排序) 的過程了。
4、有10個文件,每個文件1G,每個文件的每一行存放的都是用戶的query,每個文件的query都可能重復。要求你按照query的頻度排序。
還是典型的TOP K演算法,解決方案如下:
方案1:
順序讀取10個文件,按照hash(query)的結果將query寫入到另外10個文件(記為)中。這樣新生成的文件每個的大小大約也1G(假設hash函數是隨機的)。
找一台內存在2G左右的機器,依次對用hash_map(query, query_count)來統計每個query出現的次數。利用快速/堆/歸並排序按照出現次數進行排序。將排序好的query和對應的 query_cout輸出到文件中。這樣得到了10個排好序的文件(記為)。
對這10個文件進行歸並排序(內排序與外排序相結合)。
方案2:
一般query的總量是有限的,只是重復的次數比較多而已,可能對於所有的query,一次性就可以加入到內存了。這樣,我們就可以採用trie樹/hash_map等直接來統計每個query出現的次數,然後按出現次數做快速/堆/歸並排序就可以了。
方案3:
與方案1類似,但在做完hash,分成多個文件後,可以交給多個文件來處理,採用分布式的架構來處理(比如MapRece),最後再進行合並。
5、 給定a、b兩個文件,各存放50億個url,每個url各佔64位元組,內存限制是4G,讓你找出a、b文件共同的url?
方案1:可以估計每個文件安的大小為5G×64=320G,遠遠大於內存限制的4G。所以不可能將其完全載入到內存中處理。考慮採取分而治之的方法。
遍歷文件a,對每個url求取hash(url)00,然後根據所取得的值將url分別存儲到1000個小文件(記為a0,a1,…,a999)中。這樣每個小文件的大約為300M。
遍歷文件b,採取和a相同的方式將url分別存儲到1000小文件(記為b0,b1,…,b999)。這樣處理後,所有可能相同的url都在對應的小 文件(a0vsb0,a1vsb1,…,a999vsb999)中,不對應的小文件不可能有相同的url。然後我們只要求出1000對小文件中相同的 url即可。
求每對小文件中相同的url時,可以把其中一個小文件的url存儲到hash_set中。然後遍歷另一個小文件的每個url,看其是否在剛才構建的hash_set中,如果是,那麼就是共同的url,存到文件裡面就可以了。
方案2:如果允許有一定的錯誤率,可以使用Bloom filter,4G內存大概可以表示340億bit。將其中一個文件中的url使用 Bloom filter映射為這340億bit,然後挨個讀取另外一個文件的url,檢查是否與Bloom filter,如果是,那麼該url應該是共同的url(注意會有一定的錯誤率)。
Bloom filter日後會在本BLOG內詳細闡述。
6、在2.5億個整數中找出不重復的整數,注,內存不足以容納這2.5億個整數。
方案1:採用2-Bitmap(每個數分配2bit,00表示不存在,01表示出現一次,10表示多次,11無意義)進行,共需內存 2^32 * 2 bit=1 GB內存,還可以接受。然後掃描這2.5億個整數,查看Bitmap中相對應位,如果是00變01,01變10,10保持不變。所描完事後,查看 bitmap,把對應位是01的整數輸出即可。
方案2:也可採用與第1題類似的方法,進行劃分小文件的方法。然後在小文件中找出不重復的整數,並排序。然後再進行歸並,注意去除重復的元素。
7、騰訊面試題:給40億個不重復的unsigned int的整數,沒排過序的,然後再給一個數,如何快速判斷這個數是否在那40億個數當中?
與上第6題類似,我的第一反應時快速排序+二分查找。以下是其它更好的方法:
方案1:oo,申請512M的內存,一個bit位代表一個unsigned int值。讀入40億個數,設置相應的bit位,讀入要查詢的數,查看相應bit位是否為1,為1表示存在,為0表示不存在。
方案2:這個問題在《編程珠璣》里有很好的描述,大家可以參考下面的思路,探討一下:
又因為2^32為40億多,所以給定一個數可能在,也可能不在其中;
這里我們把40億個數中的每一個用32位的二進制來表示
假設這40億個數開始放在一個文件中。
;『捌』 今年長江存儲秋招已經過去,我還能通過校園招聘的方式給長江存儲投簡歷嗎
是可以直接向其人事部門投簡歷的
一般企業通過校招統一招聘人員,校招過後,一樣還是在招聘的,只是如果計劃人數招聘滿,自己投簡歷邀請面試的機會很少。
如果計劃人數沒招聘滿,一點問題都沒有,即使滿了,如果自己確實很想去,可以一直和它的人事部門聯系,一有空位,機會就來了。
『玖』 2011年安徽省長江計量所招聘考試專業筆試題目,試卷,實際操作內容
考試范圍你怎麼知道的,求問
『拾』 武漢理工進長江存儲一般什麼崗位
江存儲科技有限責任公司
2023校園招聘簡章
長江存儲科技有限責任公司成立於2016年,是一家專注主流領先技術的存儲器IDM企業,集晶元設計、製造、封測和系統解決方案、自有消費品牌等業務於一體。自2017年成功研製出國內首款3D NAND快閃記憶體以來,公司持續創新迭代,並推出了全新的3D NAND先進架構Xtacking。
長江存儲具備全球視野,公司總部位於中國武漢,分支機構和研發團隊遍及上海、北京、深圳、香港、日本、美國等世界各地。
【招聘對象】:2023屆國內、海外應屆本科、碩士及博士畢業生
【招聘崗位】:電路設計類、研發技術類、量產技術類、品質與可靠性類
【校招專業】
微電子/集成電路/電子工程/電子信息/材料/物理/化學/光學/機械工程/電氣工程/自動化/數學/計算機等各種理工科專業
【我們能為你提供什麼】
加入長江存儲,您將享受:
(一)優選賽道
存儲晶元,半導體市場佔比最大的類別
NAND快閃記憶體,智能時代不可或缺的產品
(二)雄厚平台
2200億總投資額
16年集成電路研發製造、9年3D NAND 研發製造
6000+工程師投入