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

LeetCode 2605. Form Smallest Number From Two Digit Arrays【数组,哈希表,枚举;位运算】1241

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。

为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conquest。在这一仓库中,你不仅可以看到LeetCode原题链接、题解代码、题解文章链接、同类题目归纳、通用解法总结等,还可以看到原题出现频率和相关企业等重要信息。如果有其他优选题解,还可以一同分享给他人。

由于本系列文章的内容随时可能发生更新变动,欢迎关注和收藏征服LeetCode系列文章目录一文以作备忘。

给你两个只包含 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
  • 每个数组中,元素 互不相同 。

解法1 哈希表+枚举

如果 nums 1 \textit{nums}_1 nums1 n u m s 2 nums_2 nums2 有交集,那么答案就是交集的最小值。如果没有交集,设 n u m s 1 nums_1 nums1 的最小值为 x x x n u m s 2 nums_2 nums2 的最小值为 y y y ,答案就是 min ⁡ ( 10 x + y , 10 y + x ) \min(10x+y, 10y+x) min(10x+y,10y+x)

class Solution:def minNumber(self, nums1: List[int], nums2: List[int]) -> int:s = set(nums1) & set(nums2)if s: return min(s) # 有交集x, y = min(nums1), min(nums2)return min(x * 10 + y, y * 10 + x)

解法2 位运算

class Solution {
public:int minNumber(vector<int>& nums1, vector<int>& nums2) {int mask1 = 0, mask2 = 0;for (int x : nums1) mask1 |= 1 << x;for (int x : nums2) mask2 |= 1 << x;int m = mask1 & mask2;if (m) return __builtin_ctz(m); // 有交集int x = __builtin_ctz(mask1), y = __builtin_ctz(mask2);return min(x * 10 + y, y * 10 + x);}
};

复杂度分析:

  • 时间复杂度: O ( n + m ) \mathcal{O}(n+m) O(n+m) ,其中 nnn 为 n u m s 1 nums_1 nums1 的长度,mmm 为 n u m s 2 nums_2 nums2 的长度。
  • 空间复杂度: O ( 1 ) \mathcal{O}(1) O(1) 。仅用到若干额外变量。

相关文章:

LeetCode 2605. Form Smallest Number From Two Digit Arrays【数组,哈希表,枚举;位运算】1241

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…...

VoxWeekly|The Sandbox 生态周报|20230904

欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布&#xff0c;对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容&#xff0c;欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter&#xff0c;并加入 Discord 社区&#xf…...

antd setFieldsValue 设置初始值无效AutoComplete 设置默认值失败

antd form setFieldsValue 设置初始值无效 解决方案 setTimeout(()>{setFieldsValue(values)},100)antd AutoComplete 设置默认值失败 defaultValue 设置无效 解决方案 设置value&#xff0c;搭配onChange来设置修改...

01-Redis核心数据结构与高性能原理

上一篇&#xff1a; 1.Redis安装 下载地址&#xff1a;http://redis.io/download 安装步骤&#xff1a; # 安装gcc yum install gcc# 把下载好的redis-5.0.3.tar.gz放在/usr/local文件夹下&#xff0c;并解压 wget http://download.redis.io/releases/redis-5.0.3.tar.gz…...

预防Dos攻击

Dos----拒绝服务攻击&#xff0c;一般是构造特殊的输入&#xff0c;使得后台的处理耗时远超正常水平&#xff0c;随着请求越来越多&#xff0c;后台服务越发疲于奔命&#xff0c;最后因资源耗尽&#xff0c;无法再接受新的请求&#xff0c;最终造成拒绝服务的效果。 特殊输入例…...

ant design的文档真的是一坨屎

很多基础设置 高傲的写都不写 要自己去index.d.ts里查 这就算了&#xff0c;为什么还有错的。。。。。 即使因为版本号而不同&#xff0c;起码把差异说明一下吧&#xff0c;直接丢个错的什么意思&#xff0c;。。。。。。。。 没点子功夫还真用不了 文档 进度条 Progress -…...

关于迁移学习的一点理解

举个栗子&#xff0c;老虎图片的数量非常少&#xff0c;可以让网络先学会识别猫的图片 1、预训练模型 内容&#xff1a;利用在 ImageNet1000 数据集训练好的模型&#xff0c;将所需的模型参数下载&#xff0c;嵌入到对应的网络架构中&#xff0c;使用对预训练模型的搭建。目前P…...

【力扣周赛】第 361 场周赛(⭐前缀和+哈希表 树上倍增、LCA⭐)

文章目录 竞赛链接Q1&#xff1a;7020. 统计对称整数的数目竞赛时代码——枚举预处理 Q2&#xff1a;8040. 生成特殊数字的最少操作&#xff08;倒序遍历、贪心&#xff09;竞赛时代码——检查0、00、25、50、75 Q3&#xff1a;2845. 统计趣味子数组的数目竞赛时代码——前缀和…...

解决 Android 依赖冲突

解决办法 问题原因就是&#xff0c;各个模块所有的依赖&#xff08;递归&#xff09;的 jar 包最后都会加载到安卓的项目中&#xff0c;你可以选择 project 形式查看 External Libraries&#xff0c;都在这了。所以解决问题关键就是干掉冲突&#xff0c;剩下一个就行了&#xf…...

前端设计模式基础笔记

前端设计模式是指在前端开发中经常使用的一些解决问题的模式或思想。它们是经过实践证明的最佳实践&#xff0c;可以帮助我们更好地组织和管理我们的代码。 一、单例模式&#xff08;Singleton Pattern&#xff09; 单例模式是一种创建型模式&#xff0c;它保证一个类只有一个…...

Python项目开发:Flask基于Python的天气数据可视化平台

目录 步骤一&#xff1a;数据获取 步骤二&#xff1a;设置Flask应用程序 步骤三&#xff1a;处理用户输入和数据可视化 步骤四&#xff1a;渲染HTML模板 总结 在这个数字化时代&#xff0c;数据可视化已经成为我们理解和解释信息的重要手段。在这个项目中&#xff0c;我们…...

Dell 服务器常见报错信息汇总

Dell 服务器常见报错汇总 如果有别的报错信息欢迎补充...

算法通关村-----贪心面试大热门之区间问题

判断区间是否重叠 问题描述 给定一个会议时间安排数组intervals&#xff0c;每个会议时间都包括开始时间和结束时间,intervals[i] [starti,endi]&#xff0c;请你判断一个人是否能够参加这里面的全部会议。详见leetcode252 问题分析 先将会议安排数组按照开始时间排序&…...

OAK相机:自动或手动设置相机参数

OAK相机&#xff1a;自动或手动设置相机参数 硬件软件 硬件 使用硬件如下&#xff1a; 4✖️ov9782相机OAK-FFC-4P驱动板 硬件接线参考博主的一篇博客&#xff1a;OAK相机&#xff1a;多相机硬件同步拍摄 软件 博主使用的是Ubuntu18.04系统&#xff0c;首先配置所需的pytho…...

百家宴焕新上市,持续深耕100-300元价位段

执笔 | 尼 奥 编辑 | 古利特 4月8日&#xff0c;长江酒道曾在《百家宴谋划“晋级”之路&#xff0c;多措并举切分宴席市场“蛋糕”》一文中提到&#xff1a;“百家宴主力新品即将登场&#xff0c;市场政策灵活焕新。” 如今&#xff0c;百家宴新品及市场新政&#xff0c;正…...

Linux Debian12使用git将本地项目上传到码云(gitee)远程仓库

一、注册码云gitee账号 这个可以参考其他教程&#xff0c;本文不做介绍。 gitee官网&#xff1a;https://gitee.com/ 二、Linux Debian12安装git 如果Linux系统没有安装git&#xff0c;可以使用下面命令安装git sudo apt install git 三、gitee新建仓库 我这只做测试&…...

电子烟行业常用的英文表达

1. 电子烟的各种表达 a) 电子烟 i. Electronic-cigarette, ii. Electronic smoke, iii. electronic cigarettes iv. Electric cigarette, v. E-Cigarettes vi. e-cigarette, vii. e-Cig viii. E cigar,e-cigar 电子烟雪茄 2. 电子烟特指词汇及衍生 a) VAPE i. Vapo…...

【SpringMvc 丨跨域】

Spring MVC 支持跨域处理&#xff08;CORS&#xff09;。 CORS 简介处理CORS 过滤器CrossOrigin注解java配置xml配置 主页传送门&#xff1a;&#x1f4c0; 传送 简介 跨域是指在浏览器的同源策略下&#xff0c;不能执行其他网站的脚本。它是由浏览器的安全限制造成的&#xf…...

【C语言】【strlen函数的使用与模拟实现】

1.strlen函数的使用和模拟实现 1.1使用&#xff1a; size_t strlen(const char* str)返回类型为无符号整型&#xff0c;参数是字符指针 计算的是字符串中到“\0"之前的字符个数 1.2模拟实现&#xff1a; 方法一&#xff1a;计数器式遍历 #include<stdio.h> #in…...

类和对象【基础概念】

全文目录 类的定义定义方式 类的访问限定符封装&#xff08;面向对象的三大特性之一&#xff09; 类对象模型类对象的存储方式类对象的大小计算 this指针this指针的特性**this指针可以为空吗&#xff1f;** 类的定义 在C中&#xff0c;C语言中的结构体struct中除了定义变量外还…...

lychee-rerank-mm惊艳效果集:Qwen2.5-VL底座下BF16高精度打分可视化

lychee-rerank-mm惊艳效果集&#xff1a;Qwen2.5-VL底座下BF16高精度打分可视化 想象一下&#xff0c;你有一个包含数百张图片的图库&#xff0c;想快速找出所有“夕阳下的海边剪影”照片。传统方法要么靠记忆&#xff0c;要么一张张翻看&#xff0c;费时费力。现在&#xff0…...

浏览器兼容性问题汇总

1.IE10版本以上浏览器input标签后面自带一个X问题IE10&#xff0c;IE11浏览器当点击input text文本框时&#xff0c;输入文本后出现一个删除功能的X按钮IE浏览器效果&#xff0c;而谷歌浏览器没有解决方案&#xff1a;给input添加如下CSS样式 input::-ms-clear{display:none;}2…...

终极指南:如何在Windows电脑上直接安装Android应用

终极指南&#xff1a;如何在Windows电脑上直接安装Android应用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK Installer是一款专为Windows系统设计的Android应用安…...

借助yakit高效构建渗透字典:从历史流量中智能提取关键参数

1. 为什么需要从历史流量中提取渗透字典&#xff1f; 做过渗透测试的朋友都知道&#xff0c;字典的质量直接影响测试效率。传统方式要么用现成的通用字典&#xff0c;要么手动收集整理&#xff0c;前者命中率低&#xff0c;后者耗时费力。我遇到过最头疼的情况是测试一个Web系统…...

探索二维非常规态型近场动力学代码

非常规态型近场动力学代码 纬度&#xff1a;二维&#xff1b; 时间积分&#xff1a;自适应动态松弛 or verlet-velocity; 零能抑制模式&#xff1a;silling method or Li pan method; 语言&#xff1a;MATLAB 代码注释详细&#xff0c;可适当在数值模拟领域&#xff0c;近场动力…...

AI原生推荐:如何实现端到端的训练?

AI原生推荐&#xff1a;如何实现端到端的训练&#xff1f;关键词&#xff1a;AI原生推荐、端到端训练、深度学习推荐系统、推荐模型架构、多模态融合摘要&#xff1a;本文将从“AI原生推荐”的核心需求出发&#xff0c;用“快递物流”“餐厅点菜”等生活化类比&#xff0c;逐步…...

5步征服显存难题:多语言MiniLM模型量化优化实战指南

5步征服显存难题&#xff1a;多语言MiniLM模型量化优化实战指南 【免费下载链接】paraphrase-multilingual-MiniLM-L12-v2 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/paraphrase-multilingual-MiniLM-L12-v2 1. 诊断显存瓶颈 在部署paraphrase-multili…...

车载以太网gPTP时间同步实战:LinuxPTP工具链配置与避坑指南

车载以太网gPTP时间同步实战&#xff1a;从硬件验证到系统调优的全链路指南 当激光雷达的扫描点云与摄像头图像帧的时间戳偏差超过100纳秒&#xff0c;自动驾驶系统的感知模块就可能出现"重影"现象。这正是我们团队在开发L4级自动驾驶平台时遇到的真实挑战——传统时…...

同花顺期货通指标编写指南:从零开始构建趋势波段共振系统(含避坑技巧)

同花顺期货通指标编写指南&#xff1a;从零开始构建趋势波段共振系统&#xff08;含避坑技巧&#xff09; 在期货交易中&#xff0c;技术指标是交易者不可或缺的分析工具。同花顺期货通作为国内主流的期货交易软件&#xff0c;其内置的指标编写功能为交易者提供了强大的自定义能…...

sklearn分类指标实战:如何用precision_recall_curve优化你的模型效果

sklearn分类指标实战&#xff1a;如何用precision_recall_curve优化模型效果 在机器学习项目中&#xff0c;分类模型的评估往往比训练过程更考验数据科学家的专业素养。当你的模型在测试集上达到95%的准确率时&#xff0c;是否就意味着可以高枕无忧&#xff1f;现实情况往往复杂…...