華為機試題目1-10題
阿新 • • 發佈:2022-03-01
第三題:明明的隨機數問題,根據題意是將輸入的資料進行去重和排序,明顯是用TreeSet。
第五題:進位制轉換問題。本來打算一點一點寫一個map,進行轉換,發現太過麻煩,上網查後,發現有兩個方法可以直接轉換。
字串s="0xA",十進位制是10;
方法一:Integer.decode(s);即可為10;
decode可以自己分析字串從而輸出對應的10進位制,
如:
8進:010=>分析後為 8
10進:10=>分析後為 10
16進:#10|0X10|0x10=>分析後是 16
方法二:
ss=s.substring(2);
Integer.parseInt(ss,16);也可以得到10,第一行程式碼是將0x去掉,第二行程式碼parseInt第二個引數16,是說明這個ss字串代表的是一個16進位制的數,返回10進位制。
parseInt是解析一個string表示的數的方法,即給一個X進位制的數,返回它的十進位制表示,比如parseInt("Kona", 27) ;
返回結果為411787。
第六題:質數因子。自己寫的辦法最後一組一直超時,是因為判斷一個數是不是質數的時候一直從小到大判斷。而實際上我們判斷數num
是不是質數時,沒必要從2
一直嘗試到num
一樣,
此題中的大迴圈也大可不必寫一個到num
的迴圈,寫到根號num
至於遍歷問題,用foreach遍歷,程式碼如下:
第九題:輸出不重複的整數。我剛開始用的是hashset,但是發現輸出的順序不是插入的順序,上網查了下資料發現輸出的順序是隨機的,要想維護插入順序,需要用LinkedHashSet.