华为OD两轮技术面试

华为OD面试
1性格测试
选积极向上的选项,注意,性格测试也会挂人,我一个朋友性格测试就没过。
2机试 一道变成题目 1h 用例60%通过即可
任给一个数组,元素有20M,1T,300G之类的,其中1T=1000G,1G=1000M
按从小到大输出结果
例如:输入:3
20M
1T
300G
输出:
20M
300G
1T
我给出的代码如下(已通过100%用例):

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; }; }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 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

3面试
3.1.两道编程题
(1) 任给一个数组,其中只有一个元素是单独出现,其他是成对出现,输出单独的元素。
例如: 输入: {2,2,1,1,4,4,7}
输出:7
(2)

3.2.面试问题
(1) 说一下常见的工厂模式
(2)出现full gc定位问题的步骤
(3)mysql数据库优化
(4)zookeeper的选举机制

(0)

相关推荐