华为OD两轮技术面试

华为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
             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的选举机制

你可能感兴趣的:(华为OD两轮技术面试)