日常刷题(24)

devtools/2024/10/22 5:00:28/

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) - kfor num in nums:while stack and drop and stack[-1] < num:stack.pop()drop -= 1stack.append(num)return stackdef merge(self, nums1, nums2):stack = []while nums1 or nums2:# 比较第一位数大小nums = nums1 if nums1 > nums2 else nums2stack.append(nums.pop(0))return stackdef __call__(self, nums1, nums2, k):ans = []for i in range(k):if i > len(nums1) or k - i > len(nums2):continuestack1, stack2 = self.get_max_subsequence(nums1, i), self.get_max_subsequence(nums2, k - i)stack = self.merge(stack1, stack2)[:k]if len(stack) != k:continueans = max(stack, ans)return ans

http://www.ppmy.cn/devtools/104167.html

相关文章

力扣1425.带限制的子序列和

力扣1425.带限制的子序列和 单调队列优化dp f[i] 表示在数组的前 i 个数中进行选择&#xff0c;并且恰好选择了第 i 个数&#xff0c;可以得到的最大和状态转移&#xff1a;f[i] max(max(f[j]) , 0) nums[i];单调队列优化&#xff1a;储存前K个f[i]&#xff0c;并且单调&…

HarmonyOS应用开发者基础认证 | <HarmonyOS第一课>习题-ArkTS语法

1. 下面示例中会导致编译报错的有&#xff1f; A. let x: number null&#xff1b; B. let x: number | null null&#xff1b; C. let y: string null&#xff1b; D. let y: string 100&#xff1b; 看来GPT对这种标准概念选择&#xff0c;也没有统一的说法。 文心一…

MATLAB发票识别系统

课题介绍 该课题为基于MATLAB的发票识别系统。主要识别发票的编号。可定做发票的日期&#xff0c;金额等字段的识别。通过输入图片&#xff0c;校正&#xff0c;定位目标区域&#xff0c;分割&#xff0c;字符分割&#xff0c;模板匹配识别&#xff0c;得出结果。整个设计包含…

数据结构:树形结构(树、堆)详解

数据结构&#xff1a;树形结构&#xff08;树、堆&#xff09;详解 一、树&#xff08;一&#xff09;树的性质&#xff08;二&#xff09;树的种类二叉树多叉树满N叉树完全N叉树 &#xff08;三&#xff09;二叉树的实现1、二叉树结构定义2、二叉树功能实现&#xff08;1&…

unity面试:LOD是什么,优缺点是什么?

LOD&#xff08;Level of Detail&#xff0c;细节层级&#xff09;是一种用于3D图形和游戏开发的技术&#xff0c;用于根据相机与物体之间的距离动态选择和显示不同细节级别的模型。这种技术可以显著提高性能&#xff0c;同时保持视觉质量。以下是关于LOD的详细说明&#xff0c…

如何将线程绑定到特定的CPU核

要将线程绑定到特定的CPU核&#xff08;也称为“设置CPU亲和性”&#xff09;并分配资源&#xff0c;可以使用pthread库结合sched库中的函数来实现。具体来说&#xff0c;Linux系统中有pthread和sched库函数&#xff0c;例如pthread_setaffinity_np()来设置线程的CPU亲和性。 …

Golang 开发使用 gorm 时打印 SQL 语句

目录 1. 使用 Debug 方法2. 全局设置日志级别3. 自定义 Logger4. 总结 参考 gorm 文档&#xff1a;https://gorm.io/zh_CN/docs/logger.html Gorm 有一个 默认 logger 实现&#xff0c;默认情况下&#xff0c;它会打印慢 SQL 和错误。如果想要全部或部分打印 SQL 的话可以通过设…

C++领进门(第三讲)

目录 7.内联函数 7.1 概念 7.2 特征 8. auto关键字(C11) 8.1 auto简介 8.2 auto的使用细则 8.3 auto不能推导的场景 9. 基于范围的for循环(语法糖)(C11) 9.1 范围for的语法 9.2 范围for的使用条件 10. 指针空值nullptr(C11) 7.内联函数 7.1 概念 以inline修饰的函数…