力扣第2605题 从两个数字数组里生成最小数字 c++暴力必会
题目
给你两个只包含 1 到 9 之间数字的数组 nums1
和 nums2
,每个数组中的元素 互不相同 ,请你返回 最小 的数字,两个数组都 至少 包含这个数字的某个数位。
示例 1:
输入:nums1 = [4,1,3], nums2 = [5,7] 输出:15 解释:数字 15 的数位 1 在 nums1 中出现,数位 5 在 nums2 中出现。15 是我们能得到的最小数字。
示例 2:
输入:nums1 = [3,5,2,6], nums2 = [3,1,7] 输出:3 解释:数字 3 的数位 3 在两个数组中都出现了。
提示:
1 <= nums1.length, nums2.length <= 9
1 <= nums1[i], nums2[i] <= 9
- 每个数组中,元素 互不相同 。
解法
# 思路
> 首先,我们定义一个变量 ans 来保存结果,初始值设为无穷大。
>然后,我们遍历 nums1 数组的每个数字,记当前数字为 num1。
>在遍历 nums2 数组的每个数字之前,我们需要判断当前数字 num1 是否已经出现在 nums2 数组中。如果是,则将 num1 更新到 ans 中,因为它是最小的数字。
>在遍历 nums2 数组的每个数字时,记当前数字为 num2。
>接下来,我们将 num1 和 num2 分别拼接成两个数,即 num1 * 10 + num2 和 num2 * 10 + num1。然后,我们递归调用函数,传入更新后的 nums1 和 nums2 数组,以及 ans 的值。
# 解题方法
> 描述你的解题方法
# 复杂度
- 时间复杂度:
> $O(n^2)$ 这个算法的时间复杂度是$O(n^2)$ ,其中n为两个数组总元素数量,因为使用两个循环遍历数组。
- 空间复杂度:
> $O(1)$ 空间复杂度是O(1),因为空间使用不随输入规模变化。
> 对于数字范围较小的情况下,这样的算法已经足够快。但是如果数字范围较大时,可以考虑使用排序等其他方法进行优化。
c++ 代码
class Solution {
public:
int minNumber(vector<int>& nums1, vector<int>& nums2) {
int ans = 100; // 初始化ans为一个较大的数,可以保证之后找到的数字小于ans
// 两个循环遍历两个数组
for (int i = 0; i < nums1.size(); i++)
{
for (int j = 0; j < nums2.size(); j++)
{
// 如果存在相同数字,更新ans为该数字
if (nums1[i] == nums2[j])
ans = min(ans, nums1[i]);
else
// 如果不存在相同数字,则拼接数字并更新ans
ans = min({ ans,(nums1[i] * 10 + nums2[j]),(nums2[j] * 10 + nums1[i]) });
}
}
return ans;
}
};
# Code
```C++ []
class Solution {
public:
int minNumber(vector<int>& nums1, vector<int>& nums2) {
int ans = 100; // 初始化ans为一个较大的数,可以保证之后找到的数字小于ans
// 两个循环遍历两个数组
for (int i = 0; i < nums1.size(); i++)
{
for (int j = 0; j < nums2.size(); j++)
{
// 如果存在相同数字,更新ans为该数字
if (nums1[i] == nums2[j])
ans = min(ans, nums1[i]);
else
// 如果不存在相同数字,则拼接数字并更新ans
ans = min({ ans,(nums1[i] * 10 + nums2[j]),(nums2[j] * 10 + nums1[i]) });
}
}
return ans;
}
};
```
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)