其他
【197期】华为OD两轮技术面试记录,给后来人一个参考!
点击上方“Java面试题精选”,关注公众号
面试刷图,查缺补漏
>>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅
阶段汇总集合:001期~180期汇总,方便阅读(增加设计模式)
1性格测试
选积极向上的选项,注意,性格测试也会挂人,我一个朋友性格测试就没过。
2机试
一道编程题目 1h 用例60%通过即可
任给一个数组,元素有20M,1T,300G之类的,其中1T=1000G,1G=1000M 按从小到大输出结果
例如:输入:
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;
};
}
3面试
3.1.两道编程题
(1) 任给一个数组,其中只有一个元素是单独出现,其他是成对出现,输出单独的元素。(往期面试题:001期~180期汇总)
例如:输入:{2,2,1,1,4,4,7}
输出:7
(2)题目如图
3.2.面试问题
(1) 说一下常见的工厂模式
(2)出现full gc定位问题的步骤
(3)mysql数据库优化
(4)zookeeper的选举机制
以上,就是整个面试环节问题。
END
来源:blog.csdn.net/candgbb/article/details/103877203
十期推荐
【182期】SpringCloud常见面试题(2020最新版)
【185期】面试官:你能说说 Synchronized实现对象锁的两种方式以及它的原理吗?
【186期】一口气说出 Synchronized 同步方法的八种使用场景
【188期】面试官:delete、truncate、drop的区别有哪些,该如何选择
与其在网上拼命找题? 不如马上关注我们~