華為OD面試
1性格測試
選積極向上的選項,注意,性格測試也會掛人,我一個朋友性格測試就沒過。
2機試 一道變成題目 1h 用例60%通過即可
任給一個數組,元素有20M,1T,300G之類的,其中1T=1000G,1G=1000M
按從小到大輸出結果
例如:輸入:3
20M
1T
300G
輸出:
20M
300G
1T
我給出的代碼如下(已通過100%用例):
[Java]
純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package
Huawei;
import
java.util.Scanner;
/**
* Created by xuzhenyu on 2020/1/5.
*/
public
class
Test {
public
static
void
main(String[] args) {
Scanner scanner =
new
Scanner(System.in);
int
n = scanner.nextInt();
String[] strings =
new
String[n];
for
(
int
i =
0
; i < n; i++) {
strings[i] = scanner.next();
}
String[] ruslutStrs = sort(strings);
for
(
int
i =
0
; i <ruslutStrs.length ; i++) {
System.out.println(ruslutStrs[i]);
}
}
private
static
String[] sort(String[] strs) {
for
(
int
i =
0
; i < strs.length -
1
; i++) {
for
(
int
j =
0
; j < strs.length - i -
1
; j++) {
// M G T
if
(compare(strs[j], strs[j +
1
])) {
String tem = strs[j];
strs[j] = strs[j+
1
];
strs[j+
1
] = tem;
}
}
}
return
strs;
}
private
static
boolean
compare(String str1, String str2){
int
str1M = turnString(str1);
int
str2M = turnString(str2);
return
str1M>str2M;
}
private
static
int
turnString(String str){
if
(
"M"
.equals(String.valueOf(str.charAt(str.length()-
1
)))){
return
Integer.parseInt(str.substring(
0
,str.length()-
1
));
}
else
if
(
"G"
.equals(String.valueOf(str.charAt(str.length()-
1
)))){
return
Integer.parseInt(str.substring(
0
,str.length()-
1
))*
1000
;
}
else
if
(
"T"
.equals(String.valueOf(str.charAt(str.length()-
1
)))){
return
Integer.parseInt(str.substring(
0
,str.length()-
1
))*
1000000
;
}
return
0
;
};
}
|
3面試
3.1.兩道編程題
(1) 任給一個數組,其中只有一個元素是單獨出現,其他是成對出現,輸出單獨的元素。
例如: 輸入: {2,2,1,1,4,4,7}
輸出:7
(2)
3.2.面試問題
(1) 說一下常見的工廠模式
(2)出現full gc定位問題的步驟
(3)mysql數據庫優化
(4)zookeeper的選舉機制
更多技術資訊可關注:itheimaGZ獲取