目录
-
- 专栏导读
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 四、解题思路
- 五、Java算法源码
- 六、效果展示
-
- 1、输入
- 2、输出
- 3、说明
华为OD机试 2023B卷题库疯狂收录中,刷题点这里
专栏导读
本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。
一、题目描述
给定一个整型数组,请从该数组中选择3个元素组成最小数字并输出(如果数组长度小于3,则选择数组中所有元素来组成最小数字)
二、输入描述
输入一行用半角逗号分割的字符串记录的整型数组,0
三、输出描述
由3个元素组成的最小数字,如果数组长度小于3,则选择数组中所有元素来组成最小
四、解题思路
- 输入一行用半角逗号分割的字符串记录的整型数组;
- 通过java8 Stream快速拆解输入行;
- 按照数字大小升序排序;
- 从该数组中选择3个元素组成最小数字并输出(如果数组长度小于3,则选择数组中所有元素来组成最小数字);
- 按照组合数字升序排序;
- 组合成数,输出。
五、Java算法源码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = Arrays.asList(sc.nextLine().split(",")).stream().mapToInt(Integer::parseInt).toArray();
// 按照数字大小升序排序
Arrays.sort(arr);
// 取出3个数
ListString> list = new ArrayList>();
int n = arr.length >= 3 ? 3 : arr.length;
for (int i = 0; i n; i++) {
list.add(String.valueOf(arr[i]));
}
// 按照组合数字升序排序
Collections.sort(list, new ComparatorString>() {
@Override
public int comp服务器托管网are(String o1, String o2) {
return (o1 + o2).compareTo(o2 + o1);
}
});
// 组合成数,输出
StringBuilder builder = new StringBuilder();
list.forEach(x -> builder.append(x));
System.out.println(builder);
}
六、效果展示
1、输入
21,30,62,5,31
2、输出
21305
3、说明
下一篇:华为OD机试 – 荒岛求生 – 栈Stack(Java 2服务器托管网023 B卷 100分)
本文收录于,华为OD机试(JAVA)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net