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

2024-03-28 01:12

本文主要是介绍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)

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

这篇关于T1 神奇苹果桶 (25分) - 小米前端笔试编程题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/854012

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。