• 2023-09-05 LeetCode每日一题(从两个数字数组里生成最小数字)


    2023-09-05每日一题

    一、题目编号

    2605. 从两个数字数组里生成最小数字
    
    • 1

    二、题目链接

    点击跳转到题目位置

    三、题目描述

    给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 ,每个数组中的元素 互不相同 ,请你返回 最小 的数字,两个数组都 至少 包含这个数字的某个数位。
    示例 1:
    在这里插入图片描述
    示例 2:
    在这里插入图片描述
    提示:

    • 1 <= nums1.length, nums2.length <= 9
    • 1 <= nums1[i], nums2[i] <= 9
    • 每个数组中,元素 互不相同 。

    四、解题代码

    class Solution {
        
    public:
        int minNumber(vector<int>& nums1, vector<int>& nums2) {
            int hash1[10];
            memset(hash1, 0, sizeof(hash1));
            int min_num1 = INT_MAX;
            int min_num2 = INT_MAX;
            for(int i = 0; i < nums1.size(); ++i){
                min_num1 = min(min_num1, nums1[i]);
                hash1[nums1[i]]++;
            }
            for(int i = 0; i < nums2.size(); ++i){
                min_num2 = min(min_num2, nums2[i]);
                hash1[nums2[i]]++;
            }
            for(int i = 0; i <= 9; ++i){
                if(hash1[i] == 2){
                    return i;
                }
            }
            
            if(min_num1 > min_num2){
                return min_num2 * 10 + min_num1;
            } 
        return min_num1 * 10 + min_num2;   
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    五、解题思路

    (1) 因为每个数组中的数字不同,所以利用哈希表来统计是否两个数组中存在相同的数字,如果存在多个相同的数字,就返回最小的那个,否则就返回那个唯一的相同的数字。

    (2) 如果不存在,则各自找出分别在两个数组中最小的那个数字,两者中的小者放在十位,两者中的大者放在个位,返回结果即可。

  • 相关阅读:
    8万字带你入门Rust
    python-opencv车牌检测和定位
    部署Netlify站点博客
    lnmp环境安装ffmpeg,并在Yii2中使用
    Matlab上机三(Apriori算法)
    面试总结之微服务篇
    【java期末复习题】第12章 Swing高级
    Redis RDB持久化与AOF 持久化详解
    若依 vue版 刷新页面 404 回到网站首页 index页面的问题
    Doris代码结构
  • 原文地址:https://blog.csdn.net/qq_56086076/article/details/132684404