【Leetcode 每日一题】3270. 求出数字答案
问题背景
给你三个 正 整数 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;}
}