日常刷题(24)

1. 拼接最大数

1.1. 题目描述

给你两个整数数组 nums1 和 nums2,它们的长度分别为 m 和 n。数组 nums1 和 nums2 分别代表两个数各位上的数字。同时你也会得到一个整数 k。

请你利用这两个数组中的数字中创建一个长度为 k <= m + n 的最大数,在这个必须保留来自同一数组的数字的相对顺序。

返回代表答案的长度为 k 的数组。

1.2. 示例

示例 1:

输入:nums1 = 3,4,6,5, nums2 = 9,1,2,5,8,3, k = 5

输出:9,8,6,5,3

示例 2:

输入:nums1 = 6,7, nums2 = 6,0,4, k = 5

输出:6,7,6,0,4

示例 3:

输入:nums1 = 3,9, nums2 = 8,9, k = 3

输出:9,8,9

1.3. 题目解析

  1. 找最大子串
  2. 拼接最大子串

1.4. 代码

python 复制代码
class Solution:
    def get_max_subsequence(self, nums, k):
        stack = []
        drop = len(nums) - k
        for num in nums:
            while stack and drop and stack[-1] < num:
                stack.pop()
                drop -= 1
            stack.append(num)
        return stack

    def merge(self, nums1, nums2):
        stack = []
        while nums1 or nums2:
            # 比较第一位数大小
            nums = nums1 if nums1 > nums2 else nums2
            stack.append(nums.pop(0))
        return stack

    def __call__(self, nums1, nums2, k):
        ans = []
        for i in range(k):
            if i > len(nums1) or k - i > len(nums2):
                continue
            stack1, stack2 = self.get_max_subsequence(nums1, i), self.get_max_subsequence(nums2, k - i)
            stack = self.merge(stack1, stack2)[:k]
            if len(stack) != k:
                continue
            ans = max(stack, ans)
        return ans
相关推荐
半亩码田5 小时前
C#转Python第3.6篇:Python 的 @property 比 C# 的 get/set 更灵活
java·python·c#
zander2585 小时前
LeetCode 300. 最长递增子序列
算法·leetcode·深度优先
欧叶冲冲冲5 小时前
Python常见数据结构的CRUD(LeetCode高频版速查)
数据结构·python·leetcode
钱栈up5 小时前
Mac 开发机一键发版不用切环境:我这样改造了团队的后端部署脚本Maven编译卡住20分钟?我靠两步定位到2处隐蔽编译错误
开发语言·python·macos
CSND7405 小时前
DeepSeek Harness实测+入门教程
人工智能·python
gb42152875 小时前
ai中agent,skill Package,skill,tool,prompt,mcp等等概念的关系
python
祖力555 小时前
Linux应用软件编程:目录IO与framebuffer
linux·运维·算法·framebuffer·目录io
名字还没想好☜5 小时前
Go 用 slices/maps 标准库泛型函数:告别手写 Contains、Sort、去重(Go 1.21)
开发语言·后端·算法·golang·go
地平线开发者5 小时前
【模型轻量化专题】深度学习模型为什么需要轻量化
算法
淼澄研学6 小时前
Python实战:基于LangChain与Chroma构建企业级RAG知识库问答系统
开发语言·python·langchain