自学内容网 自学内容网

【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) (1i4) 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 1num1,num2,num39999

解题过程

终于想起来简单题简单做了,三个四位数,连循环都不需要。

具体实现

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

原文地址:https://blog.csdn.net/2401_88859777/article/details/145077000

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!