T1 神奇苹果桶 (25分) - 小米前端笔试编程题解

alt

考试平台: 赛码

题目类型: 20道选择 + 2道编程题

考试时间: 2024-03-23 (两小时)

题目描述

小希在森林冒险的时候发现一个神奇的木桶,某些时会凭空出现一些苹果,小希很解地大家分享了这一个神奇的木桶,让大家都能享用这些大自然的溃赠。

为了方便大家来享用,小希对这一神奇的木桶的苹果数量改变进行了记录通知大家,以免在木桶空时让特意过来的人们空手而归。

小希记录下来的数量改变有3种:

  1. 苹果数是凭空增加了m个。

  2. 人们来参观时想要取走m个苹果,不过如果此时苹果数景不足m则放弃此次操作,一个都不取。

  3. 小希取走1/m的苹果进行义卖活动,如果苹果数量不能除,小希会对其进行向上取整,例如有10个苹果时,要拿走1/4,那么小希会拿走[10 / 4] = 3 个苹果。

小希记得最初时木桶中的苹果数量为0,但她忘记现在苹果数景是多少了,请你帮帮她。

输入描述

第一行一个整数n,表示会有n次操作。

第二行2n个整数 o p 1 , m 1 , o p 2 , m 2 . . . o p n , m n op_1, m_1, op_2, m_2 ... op_n, m_n op1,m1,op2,m2...opn,mn,其中 o p i op_i opi 为第 i 次的操作类型, m i m_i mi 为对应参数。意义如题面,

$ 1 \le n \le 50000,2 \le m \le 1000 $

输出描述

输出一个整数表示这n次操作之后剩余苹果数量。

样例输入

5
1 2 2 3 1 5 2 4 3 2

样例输出

1

提示

第一次操作增加2个苹果。现在剩余2个苹果。

第二次操作尝试拿3个苹果,因为不足3个放弃此次操作。现在仍然剩余2个苹果。

第三次操作增加5个苹果。现在剩余7个苹果。

第四次操作尝试拿4个苹果,足够,拿走后剩余3个苹果。

第五次操作拿走1/2,3不能被2整除,向上取整拿走2个。拿走后剩余1个苹果。

题解

这道题属于模拟类型的算法题,需要按照题目描述的规则模拟操作过程,最终计算出剩余的苹果数量。

解题思路:

  1. 用一个变量 count 记录当前木桶中的苹果数量,初始值为0。
  2. 遍历输入的操作记录,根据操作类型进行相应的处理:
    • 如果是类型1的操作,即苹果数增加,直接将苹果数增加对应的数量。
    • 如果是类型2的操作,即人们来取苹果,判断苹果数是否足够,足够则减去对应的数量。
    • 如果是类型3的操作,即小希取走苹果进行义卖,计算需要取走的苹果数量并减去。
n = int(input())
arr = list(map(int, input().split()))count = 0
for i in range(0, len(arr), 2):op, m = arr[i], arr[i+1]if op == 1:count += melif op == 2:if count >= m:count -= melse:count -= (count + m - 1) // mprint(count)

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CCIE-01-VLAN-Trunk

目录 实验条件网络拓朴逻辑拓扑物理拓扑实验目的 开始配置配置SW1配置SW2检验证配置结果 实验条件 网络拓朴 逻辑拓扑 物理拓扑 实验目的 SW1和SW2之间的E2/0-3配置为trunk,使用802.1q协议,不需要配置捆绑根据逻辑图和物理图标识,使得R1~R7…

6.函数和方法【go】

在Go语言中,函数和方法是两个密切相关但又有所区别的概念。它们都用于封装可重用的代码块,但它们的应用场景和语法略有不同。 函数(Function) 函数是Go语言中的一等公民,它是一段独立的代码,用于执行特定任务。函数可以接受零个或多个参数,并可能返回零个或多个值。 …

全球视野下的面试文化演进梳理

全球化的进程正在改变企业的面试文化。随着跨文化的互动和国际竞争的加剧,面试标准也在不断演变,以适应不断变化的商业环境。本篇将探讨全球化进程中企业面试文化的发展轨迹,揭示跨文化互动与国际竞争对面试标准的影响。 一、跨国公司面试策…

蓝桥杯(更新中)

递归与递推 递归 1.指数型枚举 解析:从 1 ∼ n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。 思路:枚举每一位对应的数字选与不选,例如:第一位对应的数字为1,有一种方案是选1,另…

为什么Python开发需要精通Git?

据说OpenAI团队只有不到一百人,这么小规模的团队创造了奇迹般的产品,让人惊叹。 虽然我不是专业的软件开发工程师,但想想也会知道,除了开发人员本身足够牛X外(人均世界Top名校),ChatGPT背后肯定…

Gitea的简单介绍

1、Gitea(Gitea - 轻量级全功能 DevSecOps 平台) Gitea 是一个基于 Go 语言编写的轻量级、开源、自托管的 Git 服务软件,它的设计目标是易于安装、快速运行并且提供出色的用户体验。Gitea 提供了一个类似于 GitHub 或 GitLab 的 web 界面&…

前端无痛刷新的方案

两种方案,第一种记录登录时间,根据后台设置的token过期时间,进行在时间内请求更换token 第二种利用axios的拦截,在返回token过期时,那么token去更换token,再用新的token去请求数据。 第二种,上代…

ZKFair 步入Dargon Slayer 新阶段,未来还有哪些财富效应?

在当前区块链技术的发展中,Layer 2(L2)解决方案已成为提高区块链扩容性、降低交易成本和提升交易速度的关键技术,但它仍面临一些关键问题和挑战,例如用户体验的改进、跨链互操作性、安全性以及去中心化程度。在这些背景…

Python 全栈体系【四阶】(十八)

第五章 深度学习 一、基本理论 4. 神经网络的改进 4.1 神经网络的局限 全连接神经网络的局限(一) 未考虑数据的“形状”,会破坏数据空间结构。例如,输入数据是图像时,图像通常是高长通道方向上的 3 维形状。但是&a…

皓学IT:WEB07_ JSP

一、Jsp基础语法 1.1. JSP模板元素 JSP页面中的HTML内容称之为JSP模版元素。 JSP模版元素定义了网页的基本骨架&#xff0c;即定义了页面的结构和外观。 1.2. JSP脚本片段 JSP脚本片断用于在JSP页面中编写多行Java代码&#xff08;在<%%>不能定义方法&#xff09;。…

每天学点儿Python(2)-- if语句,match语句

一、语句块 Python中&#xff0c;语句块是指按一定逻辑顺序组织成的语句。它是通过缩进来表示层级关系&#xff08;其它语言&#xff0c;如C/C,Java等&#xff0c;都是通过大括号{}来表示&#xff09; Python中缩进一般是通过4个空格或一个tab键来表示 二、if语句 if语句表…

云计算概述报告

以下是一篇论述类文章 文章目录 I. 云计算介绍&#xff08;1&#xff09;云计算基本概念&#xff08;2&#xff09;云计算基本特征 II. 云计算发展历程&#xff08;1&#xff09;云计算的起源&#xff08;2&#xff09;云计算的发展阶段 III. 云计算特点&#xff08;1&#xff…

【BFS】母亲的牛奶

农夫约翰有三个容量分别为 A,B,C升的挤奶桶。最开始桶 A 和桶 B 都是空的&#xff0c;而桶 C里装满了牛奶。有时&#xff0c;约翰会将牛奶从一个桶倒到另一个桶中&#xff0c;直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止。这一过程中间不能有任何停顿&#xff0c;并且不会…

VisionOS应用开发需要哪些工具

标题: VisionOS应用开发需要哪些工具 标签: [VisionOS, 空间计算] 分类: [VisionOS, 开发工具] 说下开发visionOS空间应用需要哪些准备&#xff0c;这里我找了下&#xff0c;列出来给大家。 xcode 15.22d: SwiftUI3d: RealityKit/Unity 3D实体空间: ARKitIntel Mac上可以运行X…

mysql8.0下载安装详细步骤 图文教程

下载mysql 保证电脑上之前没有安装过mysql&#xff0c;或者已经卸载完毕。 mysqk8.0 下载地址 解压 新建一个专门存放mysql文件夹&#xff0c;将下载的压缩包解压到这个文件夹里面。 配置 添加一个data文件夹&#xff0c;用来存放数据 新建一个my.txt文本&#xff0c;复制…

C++语言·入门

现在我们讲完了数据结构初阶部分的内容&#xff0c;数据结构剩下的内容会在C语言讲解的差不多的时候加入。 1. 什么是C C语言是结构化模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度抽象和建模时&#xff0c…

机器视觉学习(十一)—— 最小矩形和圆形区域、近似轮廓、凸包

目录 一、最小矩形区域与最小圆形区域 1.1 cv2.minAreaRect()函数 1.2 cv2.minEnclosingCircle()函数 1.3 最小矩形区域与最小圆形区域示例 二、 显示近似轮廓 2.1 cv2.approxPolyDP()函数 2.2 显示近似轮廓示例代码 2.2.1 简约版 2.2.2 进阶版 三、 显示凸包 3.…

软件测试-用例篇

目录 1 测试用例的基本要素2 测试用例给我们带来的好处3 测试用例的设计方法3.1 基于需求进行测试用例的设计3.1.1 功能需求测试分析3.1.2 非功能需求测试分析 4 具体的设计方法4.1 等价类4.2 边界值4.3 错误猜测法4.4 场景设计法4.5 因果图4.5.1 因果图需要掌握的基本知识4.5.…

用一个程序解决SQLite常见的各项操作(实用篇)

文章说明&#xff1a; 本篇文章是在之前的一篇文章SQLite3进行数据库各项常用操作基础上写的&#xff0c;将SQLite涉及到的常用的几种操作&#xff0c;以函数的形式处理成相互调用的形式。 因为之前的文章对基础操作已经解释过了&#xff0c;所以这里直接放置可执行代码和结果…

kali常用命令功能简介记录

Kali Linux中常用的命令&#xff1a; 1. apt-get update&#xff1a;更新软件源列表。 2. apt-get upgrade&#xff1a;升级系统中已安装的软件包。 3. apt-get install [软件包]&#xff1a;安装指定的软件包。 4. apt-get remove [软件包]&#xff1a;卸载指定的软件包。 5.…