【每日练习】从两个数字数组里生成最小数字

📖题目描述

给你两个只包含 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 在两个数组中都出现了。

📖我的解答

python 复制代码
class Solution:
    def minNumber(self, nums1: List[int], nums2: List[int]) -> int:
    	# 定义一个总数组
        num_sum = []
		# 迭代两个数组,组合成两位整数
        for i in nums1:
            for j in nums2:
                num_sum.append(i*10+j)
                num_sum.append(j*10+i)
        # 添加单个位数的数组
        for i in nums1:
            if i in nums2:
                num_sum.append(i)
        # 添加单个位数的数组
        for i in nums2:
            if i in nums1:
                num_sum.append(i)
		# 找到总数组中最小的值
        min_num = float(inf)
        for i in num_sum:
            if i < min_num:
                min_num = i
        return min_num

📖官方解答

python 复制代码
class Solution:
    def minNumber(self, nums1: List[int], nums2: List[int]) -> int:
        
        # 直接使用集合判断两个数组的重合情况
        def same() -> int:
            s = set(nums1) & set(nums2)
            # 返回的时候使用了条件表达式
            return min(s) if s else -1
        
        # 使用了海象操作符直接对赋值进行判断
        if (x := same()) != -1:
            return x
        else:
            x = min(nums1)
            y = min(nums2)
            return min(x*10+y, y*10+x)

📖知识总结

  • 条件表达式:条件表达式的一般形式为result = value_if_true if condition else value_if_false ,在执行时会判断condition是否成立,如果成立则返回value_if_true否则返回value_if_false

  • 海象操作符:它的主要形式是 :=,它可以将一个表达式的值赋给一个变量,并返回被赋的值。例如下面的代码片段:

python 复制代码
	if (result := some_function()) == expected_value:
	   print("Result is as expected:", result)
	
	# 等同于下面的形式
	result = some_function()
	
	if result  == expected_value:
		print("Result is as expected:", result)
相关推荐
向左转, 向右走ˉ17 分钟前
为什么分类任务偏爱交叉熵?MSE 为何折戟?
人工智能·深度学习·算法·机器学习·分类·数据挖掘
霜绛1 小时前
机器学习笔记(四)——聚类算法KNN、Kmeans、Dbscan
笔记·算法·机器学习·kmeans·聚类
晨非辰2 小时前
#C语言——学习攻略:深挖指针路线(三)--数组与指针的结合、冒泡排序
c语言·开发语言·数据结构·学习·算法·排序算法·visual studio
zzywxc7872 小时前
编程算法在金融、医疗、教育、制造业等领域的落地案例
人工智能·算法·金融·自动化·copilot·ai编程
zzywxc7872 小时前
编程算法在金融、医疗、教育、制造业的落地应用。
人工智能·深度学习·算法·机器学习·金融·架构·开源
conkl3 小时前
构建 P2P 网络与分布式下载系统:从底层原理到安装和功能实现
linux·运维·网络·分布式·网络协议·算法·p2p
Shan12053 小时前
递归算法的一些具体应用
算法
paopaokaka_luck5 小时前
婚纱摄影管理系统(发送邮箱、腾讯地图API、物流API、webSocket实时聊天、协同过滤算法、Echarts图形化分析)
vue.js·spring boot·后端·websocket·算法·echarts
愚戏师6 小时前
机器学习(重学版)基础篇(算法与模型一)
人工智能·算法·机器学习
OEC小胖胖9 小时前
渲染篇(二):解密Diff算法:如何用“最少的操作”更新UI
前端·算法·ui·状态模式·web