问题背景
给你三个 正 整数
n
u
m
1
num_1
num1,
n
u
m
2
num_2
num2 和
n
u
m
3
num_3
num3。
数字
n
u
m
1
num_1
num1,
n
u
m
2
num_2
num2 和
n
u
m
3
num_3
num3 的数字答案
k
e
y
key
key 是一个四位数,定义如下:
- 一开始,如果有数字 少于 四位数,给它补 前导 0 0 0。
- 答案
k
e
y
key
key 的第
i
i
i 个数位
(
1
≤
i
≤
4
)
(1 \le i \le 4)
(1≤i≤4) 为
n
u
m
1
num_1
num1,
n
u
m
2
num_2
num2 和
n
u
m
3
num_3
num3 第
i
i
i 个数位中的 最小 值。
请你返回三个数字 没有 前导 0 0 0 的数字答案。
数据约束
- 1 ≤ n u m 1 , n u m 2 , n u m 3 ≤ 9999 1 \le num1, num2, num3 \le 9999 1≤num1,num2,num3≤9999
解题过程
终于想起来简单题简单做了,三个四位数,连循环都不需要。
具体实现
class Solution {
public int generateKey(int num1, int num2, int num3) {
int[] digits1 = cal(num1);
int[] digits2 = cal(num2);
int[] digits3 = cal(num3);
digits1[0] = Math.min(digits1[0], Math.min(digits2[0], digits3[0]));
digits1[1] = Math.min(digits1[1], Math.min(digits2[1], digits3[1]));
digits1[2] = Math.min(digits1[2], Math.min(digits2[2], digits3[2]));
digits1[3] = Math.min(digits1[3], Math.min(digits2[3], digits3[3]));
return digits1[0] * 1000 + digits1[1] * 100 + digits1[2] * 10 + digits1[3];
}
private int[] cal(int num) {
int[] digits = new int[4];
digits[0] = num / 1000;
digits[1] = num % 1000 / 100;
digits[2] = num % 100 / 10;
digits[3] = num % 10;
return digits;
}
}
标签:digits1,答案,min,int,num,3270,Leetcode,Math,num1
From: https://blog.csdn.net/2401_88859777/article/details/145077000