【秋招笔试-支持在线评测-试读版】9.19小米秋招(已改编)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试

💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历

✨ 本系列打算持续跟新 春秋招笔试题

👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸

✨ 笔试合集传送们 -> 🧷春秋招笔试合集

🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新

🍄 题面描述等均已改编,如果和你笔试题看到的题面描述不一样请理解,做法和题目本质基本不变。

🍹 感谢各位朋友们的订阅,你们的支持是我们创作的最大动力 💞

alt

🌈 小米秋招笔试,来啦!!!

🍥 本次是DP+贪心场,第二题很容易误导往DP方面想,当然也能做只不过需要优化

1️⃣ 01背包的变种,即求01背包是否能恰好装满

2️⃣ 贪心,分别枚举递增和递减的情况,有任意一种满足即可

本次的二题已全上OJ,支持在线评测啦~

🧸 01.K小姐的玩具 评测链接🔗

在这里插入图片描述

问题描述

在一个阳光明媚的下午,K小姐决定整理她的玩具。她有一个容量为 N N N 的箱子,以及 n n n 个不同大小的玩具,每个玩具的大小分别为 a [ i ] a[i] a[i]。除了这些玩具,K小姐还有 c c c 个大小均为 1 1 1 的填充物,这些填充物是她参加各种活动时的纪念品。

K小姐希望能够将这些玩具和填充物放入箱子中,恰好装满箱子,不留任何空隙。她想知道是否可以通过选择一些玩具(包括填充物)来实现这个目标。

当然,如果填充物足够多,她也可以选择用填充物完全填满整个箱子,这样也会让她感到很开心!

输入格式

第一行包含一个整数 T T T,表示数据组数。

对于每组数据:

第一行包含三个整数 N N N n n n c c c,分别表示箱子的容量、玩具的数量以及填充物的数量。

第二行包含 n n n 个整数 a , a , … , a [ n ] a, a, \ldots, a[n] a,a,,a[n],分别表示这 n n n 个玩具的大小。

1 ≤ T ≤ 100 , 1 ≤ n ≤ 500 , 1 ≤ N , c , a [ i ] ≤ 1000 1 \leq T \leq 100, 1 \leq n \leq 500, 1 \leq N, c, a[i] \leq 1000 1T100,1n500,1N,c,a[i]1000

输出格式

输出 T T T 行,分别表示每组数据的答案。

对于每组数据,如果可以恰好装满箱子,输出 “YES”;否则输出 “NO”。

样例输入

2
10 4 1
2 3 5 7
10 1 3
6

样例输出

YES
NO

数据范围

  • 每组数据中,箱子的容量、玩具数量和填充物数量均在上述范围内。

题解

动态规划

这个问题实际上是一个经典的背包问题。我们需要确定是否可以选择一些玩具和填充物,使得它们的总大小恰好等于箱子的容量 N N N

动态规划:定义一个数组 dp,其中 dp[j] 表示是否可以用选定的玩具组合成大小为 j j j 的总和。初始时,dp[0]true(表示不选任何玩具时总和为0)。

状态转移:对于每个玩具,从后向前更新 dp 数组,对于当前的玩具 a[i],如果之前可以组合出大小为 j - a[i] 的总和,那么就可以组合出大小为 j 的总和。

检查结果:在更新完所有玩具后,我们检查从大到小的 dp 数组,如果存在某个 i 满足 dp[i]trueN - i <= c(即剩余空间可以用填充物填满),则返回 “YES”;否则返回 “NO”。

参考代码

🔒订阅专栏后解锁 → \to 🧷春秋招笔试合集

♾️ 02.K小姐的排序挑战 评测链接🔗

在这里插入图片描述

问题描述

K小姐是一位热爱数学的女孩。一天,她在公园里遇到了她的朋友们,他们正在讨论如何将两个数组进行排序。K小姐决定帮助他们。她得到了两个长度为 n n n 的数组 a [ ] a[] a[] b [ ] b[] b[],并且可以在这两个数组对应的位置进行交换操作,即选择一个位置 i i i,交换 a [ i ] a[i] a[i] b [ i ] b[i] b[i]。K小姐可以进行任意次数的交换(包括 0 0 0 次),她想知道是否可以通过这些操作使得至少一个数组变得有序。

在这里,"有序"指的是数组单调不减(升序)或者单调不增(降序)。现在,K小姐希望你能帮她判断,是否能够通过这些交换操作使得至少一个数组变得有序。

输入格式

第一行包含一个整数 T T T,表示数据组数。
对于每组数据:

  • 第一行包含一个整数 n n n,表示数组的长度。
  • 第二行包含 n n n 个整数 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an,表示数组 a a a
  • 第三行包含 n n n 个整数 b 1 , b 2 , … , b n b_1, b_2, \ldots, b_n b1,b2,,bn,表示数组 b b b

输出格式

输出 T T T 行,每行表示对应数据组的答案。如果能够通过交换操作使至少一个数组变得有序,输出 “YES”;否则输出 “NO”。

样例输入

2
5
1 3 5 2 4
5 2 3 4 1
7
1 2 3 4 3 2 1
4 3 2 1 2 3 4

样例输出

YES
NO

数据范围

  • 1 ≤ T ≤ 100 1 \leq T \leq 100 1T100
  • 1 ≤ n ≤ 10000 1 \leq n \leq 10000 1n10000
  • 1 ≤ a i , b i ≤ 10000 1 \leq a_i, b_i \leq 10000 1ai,bi10000

题解

贪心

我们需要考虑两种可能的排序方式:升序和降序。对于每个位置,都有两个选择:保留原数组的元素或者与另一个数组交换。

解题思路如下:

  1. 每个位置的两个元素排序,较小的放在前面。这样可以简化后续的处理。

  2. 尝试构造一个升序序列:

    • 从第一个元素开始,记录当前的最小值。
    • 对于每个位置,如果较小的元素大于等于当前最小值,我们选择它;否则,我们尝试选择较大的元素。
    • 如果两个元素都小于当前最小值,说明无法构造升序序列。
  3. 同样的方法,尝试构造一个降序序列:

    • 从第一个元素开始,记录当前的最大值。
    • 对于每个位置,如果较大的元素小于等于当前最大值,我们选择它;否则,我们尝试选择较小的元素。
    • 如果两个元素都大于当前最大值,说明无法构造降序序列。
  4. 如果能够构造出升序或降序序列中的任意一个,答案就是 “YES”,否则就是 “NO”。

时间复杂度分析:只需要遍历一次数组,对每个位置进行常数时间的操作,所以时间复杂度是 O ( n ) O(n) O(n)。考虑到有 T T T 组测试数据,总的时间复杂度是 O ( T ⋅ n ) O(T \cdot n) O(Tn)。在给定的数据范围内( T ≤ 100 T \leq 100 T100 n ≤ 10000 n \leq 10000 n10000),这个复杂度是可以接受的。

参考代码

🔒订阅专栏后解锁 → \to 🧷春秋招笔试合集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/879876.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++掉血迷宫

目录 开头程序程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #include <iostream> #include <string> #include <cstring> using namespace std; enum RBYG {R 1,B 2,Y 4,G 7, }; struct heal {int ix…

python_uiautoanimation实现自动化微信聊天

文章目录 ⭐前言⭐微软inspect工具定位元素&#x1f496;工具查找属性 ⭐查找微信窗口&#x1f496;命令行查找运行窗口 ⭐查找微信的聊天窗口⭐封装发送消息⭐定时查询消息⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享python_uiautoanimation实现自动化微…

平价头戴式蓝牙耳机有哪些?四款公认平价性能超强品牌机型推荐

在追求高品质音乐体验的同时&#xff0c;许多消费者希望找到价格亲民的头戴式蓝牙耳机&#xff0c;市场上不乏性能卓越、价格实惠的产品&#xff0c;它们凭借出色的音质、舒适的佩戴体验和可靠的续航能力赢得了用户的青睐&#xff0c;那么在众多的头戴式蓝牙耳机内&#xff0c;…

提高数据集成稳定性:EMQX Platform 端到端规则调试指南

自 5.7.0 版本起&#xff0c;EMQX 支持了 SQL 调试&#xff0c;并支持在数据集成全流程中进行规则调试&#xff0c;使用户能够在开发阶段就全面验证和优化规则&#xff0c;确保它们在生产环境中的稳定高效运行。 点击此处下载 EMQX 最新版本&#xff1a;https://www.emqx.com/z…

移动开发(三):使用.NET MAUI打包第一个安卓APK完整过程

目录 一、修改AndroidManifest.xml 配置APP基本信息权限 二、修改项目属性调整输出Android包格式为APK 三、项目发布 四、APP分发 五、总结 之前给大家介绍过使用使用.NET MAUI开发第一个安卓APP,今天给大家介绍如何打包成APK,然后安装到安卓手机正常运行。这里还是沿用…

java序列化对象后读取数据错误的问题

今天学到了对象的序列化&#xff0c;就是将对象写入到文件中去&#xff0c;大家要直到我们普通的输入输出文件只是把数据的值写入了文件&#xff0c;而没有把数据的类型与之绑定&#xff0c;比如我向文件中写入100&#xff0c;那么这是字符串”100“还是整数100还是高精度浮点数…

算法.图论-建图/拓扑排序及其拓展

文章目录 建图的三种方式邻接矩阵邻接表链式前向星 拓扑排序拓扑排序基础原理介绍拓扑排序步骤解析拓扑排序模板leetcode-课程表 拓扑排序拓展食物链计数喧闹与富有并行课程 建图的三种方式 我们建图的三种方式分别是邻接矩阵, 邻接矩阵, 链式前向星 邻接矩阵 假设我们的点的…

Android14请求动态申请存储权限

Android14请求动态申请存储权限 Android14和Android15存储权限有增加多了选择部分&#xff0c;还是全部。一个小小的存储权限真的被它玩出了花来。本来Android13就将存储权限进行了3个细分&#xff0c;是图片&#xff0c;音频还是视频文件。 步骤一&#xff1a;AndroidManife…

24年蓝桥杯及攻防世界赛题-MISC-2

11 Railfence fliglifcpooaae_hgggrnee_o{cr} 随波逐流编码工具 分为5栏时,解密结果为:flag{railfence_cipher_gogogo} 12 Caesar rxms{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz} mode1 #12: flag{you_have_learned_caesar_encryption} 随波逐流编码工具 13 base64 base64解…

【machine learning-十-梯度下降-学习率】

学习率 学习率不同的学习率 在梯度下降算法中&#xff0c;学习率的选择很重要&#xff0c;不恰当的选择&#xff0c;甚至可能导致损失发散&#xff0c;而非收敛&#xff0c;下面就看一下学习率的影响。 学习率 学习率是下图中的红框圈出来的部分&#xff0c; 学习率是模型的超…

虹科干货 | CAN/CAN FD故障揭秘:快速排查与解决技巧

是否在处理CAN总线问题时感到头疼&#xff1f;是否在寻找简单直接的方法来解决那些看似复杂的连接故障&#xff1f;本文将为您提供实用技巧&#xff0c;让您能够轻松应对这些难题。 CAN总线因其高效、可靠的数据交换能力&#xff0c;在汽车、工业控制、航空航天等多个关键领域得…

《黑神话悟空》开发框架与战斗系统解析

本文主要围绕《黑神话悟空》的开发框架与战斗系统解析展开 主要内容 《黑神话悟空》采用的技术栈 《黑神话悟空》战斗系统的实现方式 四种攻击模式 连招系统的创建 如何实现高扩展性的战斗系统 包括角色属性系统、技能配置文件和逻辑节点的抽象等关键技术点 版权声明 本…

Linux Vim编辑器常用命令

目录 一、命令模式快捷键 二、编辑/输入模式快捷键 三、编辑模式切换到命令模式 四、搜索命令 注&#xff1a;本章内容全部基于Centos7进行操作&#xff0c;查阅本章节内容前请确保您当前所在的Linux系统版本&#xff0c;且具有足够的权限执行操作。 一、命令模式快捷键 二…

图像生成大模型imagen

Imagen 是由谷歌研究团队开发的一种先进的图像生成大模型。它基于文本描述生成高质量的图像&#xff0c;是人工智能在生成视觉内容方面的一大突破。 Imagen 的主要特点包括&#xff1a; 1. 高分辨率和高质量&#xff1a;Imagen 生成的图像具有高分辨率和高质量&#xff0c;细…

springboot宠物智慧医院-计算机毕业设计源码99362

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3微信开发者工具 1.4小程序框架以及目录结构介绍 1.5论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2…

模拟电路分析基础知识总结笔记(电子电路分析与设计前置知识)

必备条件 电子电路的直流分析电子电路的正弦稳态分析RC电路的瞬态分析戴维南定理和诺顿定理拉普拉斯变换&#xff08;看不懂&#xff0c;根本看不懂&#xff09; 电子电路的直流分析 欧姆定律 ​ 在恒定温度下&#xff0c;电压与电流成正比&#xff0c;电压与电阻成正比&am…

对 JavaScript 原型的理解

笔者看了一些有关 JavaScript 原型的文章有感而发&#xff0c;就将所感所悟画了下来如果有理解错误和不足的地方&#xff0c;欢迎各位大佬指出&#xff0c;笔者感激不尽

企业热门进销存管理系统源码 助力中小企业实现低成本实现信息化 带源代码包以及搭建部署教程

系统概述 这款企业热门进销存管理系统是专为中小企业设计开发的综合性管理平台。它涵盖了采购、销售、库存管理等核心业务流程&#xff0c;能够实现企业内部各个环节的紧密连接和协同运作。通过信息化手段&#xff0c;系统能够实时记录和监控企业的业务数据&#xff0c;为企业…

微服务保护学习笔记(五)Sentinel授权规则、获取origin、自定义异常结果、规则持久化

文章目录 前言4 授权规则4.1 基本原理4.2 获取origin4.3 配置授权规则 5 自定义异常结果6 规则持久化 前言 微服务保护学习笔记(一)雪崩问题及解决方案、Sentinel介绍与安装 微服务保护学习笔记(二)簇点链路、流控操作、流控模式(关联、链路) 微服务保护学习笔记(三)流控效果(…

【STL】string 基础,应用与操作

string 1.string相关介绍 STL&#xff08;标准模板库&#xff09;中的string容器是C标准库提供的用于处理和操作字符串的类&#xff0c;位于头文件中。std::string提供了比传统的C风格字符串&#xff08;字符数组&#xff09;更方便和安全的功能&#xff0c;具有动态内存管理…