当前位置: 首页 > news >正文

【力扣每日一题】2023.9.5 从两个数字数组里生成最小数字

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们两个数字数组,要我们用这两个数组里的元素组成一个数字,这个数字里需要同时拥有两个数组里的至少一个元素。

组成数字有两种情况,一种是只有一位数,另一种是有两位数。

一位数的时候就是两个数组共同拥有同一个元素,那么我们组成的数字就是这个数即可,如果两个数组有多个共同拥有的数字,那么我们取最小的。

两位数的情况是两个数组没有共同拥有相同元素,那么我们要做的就是将两个数组的最小元素分别取出,要组成的数字最小,我们就将较小的数字作为十位数,而较大的数作为个位数。

我们要找出最小数,那么可以直接对每个数组进行一个for循环寻找,不过我们还需要先判断两个数组共同拥有的最小元素是多少,因此我认为对数组进行一个排序操作比较方便。

我实现的手段有两种,一种是用利用set自动对元素排序的特性,另一种是直接对数组进行排序。

如果是用set的话,那么找出两个数组的公共最小元素会方便一些,因为set自带api去寻找某个元素。

如果是直接排序的话,就两层for循环遍历两个数组去寻找公共元素,因为是排过序的,所以找到的第一个元素就是最小的公共元素。

因为测试用例的数据量非常小,所以性能上没有太大差异。

代码:

class Solution {
public:int minNumber(vector<int>& nums1, vector<int>& nums2) {//利用setset<int>s1(nums1.begin(),nums1.end());set<int>s2(nums2.begin(),nums2.end());//set默认升序排序,从小到大遍历,第一个发现的两个数组都有的元素就是最小的元素,直接返回即可for(int num:s1) if(s2.count(num)) return num;int n1=*(s1.begin()),n2=*(s2.begin());  //取出两个set的第一个元素,就是两个数组的最小元素if(n1>n2) return n2*10+n1;  //将较小的数作为十位数return n1*10+n2;//直接排序sort(nums1.begin(),nums1.end());    //直接对数组排序sort(nums2.begin(),nums2.end());for(int n1:nums1){for(int n2:nums2){if(n1==n2) return n1;   //因为排过序了,所以发现有相同的元素返回即可.}}if(nums1[0]>nums2[0]) return nums2[0]*10+nums1[0];  //将较小的数作为十位数return nums1[0]*10+nums2[0];}
};

http://www.lryc.cn/news/157973.html

相关文章:

  • 跳出Lambda表达式forEach()循环解决思路
  • 2023年度AWS SAP直冲云霄训练营学习分享
  • 2023高教社杯 国赛数学建模E题思路 - 黄河水沙监测数据分析
  • 06_快速入门案例实战之电商网站商品管理:集群健康检查,文档CRUD
  • 机车整备场数字孪生 | 图扑智慧铁路
  • Fair|Fur —— Geometry Nodes
  • java八股文面试[设计模式]——行为型模式
  • 【送书活动】网络安全(黑客)自学
  • 如何让数据成为企业的生产力?
  • 监控 -- linux中的一些系统性能状态指令、Prometheus
  • 跳槽面试:如何转换工作场所而不失去优势
  • TINA如何导入spice模型
  • C. MEX Repetition Pinely Round 2 (Div. 1 + Div. 2)
  • C++ 运算符
  • 数据结构day07(栈和队列)
  • 八、Linux中的用户与文件权限
  • 岛屿数量 -- 二维矩阵的dfs算法
  • JDBC学习汇总
  • HarmonyOS—UI开发性能提升的推荐方法
  • 英文科技论文写作与发表-常见英语写作困扰(第3章)
  • video标签自动播放音视频并绘制波形图
  • Netty—EventLoop
  • [极客大挑战 2019]FinalSQL(bypass盲注)
  • 如何实现小程序与h5页面间的跳转
  • 企业架构LNMP学习笔记9
  • 华为OD机试 - 二维伞的雨滴效应(Java JS Python)
  • 【HttpRunnerManager】搭建接口自动化测试平台操作流程
  • 【C++】STL-常用算法-常用查找算法
  • vue3 webpack打包流程及安装 (1)
  • 【C++】内联函数 ① ( 内联函数引入 | 内联函数语法 )