当前位置:网站首页>Simulation volume leetcode [general] 1705 The maximum number of apples to eat
Simulation volume leetcode [general] 1705 The maximum number of apples to eat
2022-07-07 08:55:00 【Encounter simulation volume】
1705. The maximum number of apples to eat
There's a special apple tree , One after another n God , Several apples can grow every day . In the i God , Trees grow apples[i] An apple , These apples will be in days[i] Days later ( in other words , The first i + days[i] days ) Rot , Become inedible . Maybe for a few days , New apples don't grow on trees , Use at this time apples[i] == 0 And days[i] == 0 Express .
You're going to... Every day most Eat an apple to keep a balanced diet . Be careful , You can be here n Keep eating apples after three days .
Here are two lengths for you n Array of integers for days and apples , Return the maximum number of apples you can eat .
Example 1:
Input :apples = [1,2,3,5,2], days = [3,2,1,4,2]
Output :7
explain : You can eat 7 An apple :
- The first day , You eat the apples that grow on the first day .
- the second day , You eat an apple that grows the next day .
- On the third day , You eat an apple that grows the next day . After this day , On the third day, the apple has rotted .
- From day four to day seven , You eat apples that grow on the fourth day .
Example 2:
Input :apples = [3,0,0,0,0,2], days = [3,0,0,0,0,2]
Output :5
explain : You can eat 5 An apple :
- From day one to day three , You eat apples that grow on the first day .
- No apples for the fourth and fifth days .
- The sixth and seventh days , You eat apples that grow on the sixth day .
Tips :
apples.length == n
days.length == n
1 <= n <= 2 * 104
0 <= apples[i], days[i] <= 2 * 104
Only in apples[i] = 0 when ,days[i] = 0 It was established.
source : Power button (LeetCode)
link :https://leetcode-cn.com/problems/maximum-number-of-eaten-apples
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
Code :
import heapq
from leetcode_python.utils import *
class Solution:
def __init__(self):
pass
def eatenApples(self, apples: List[int], days: List[int]) -> int:
remains = []
index = res = 0
length = len(days)
while remains or index<length:
while remains and remains[0][0]<=index:heapq.heappop(remains)
if index<length and apples[index]:heapq.heappush(remains,[days[index]+index,apples[index]])
if remains:
if remains[0][1]>1:remains[0][1]-=1
else:heapq.heappop(remains)
res+=1
index+=1
return res
def test(data_test):
s = Solution()
data = data_test # normal
# data = [list2node(data_test[0])] # list turn node
return s.eatenApples(*data)
def test_obj(data_test):
result = [None]
obj = Solution(*data_test[1][0])
for fun, data in zip(data_test[0][1::], data_test[1][1::]):
if data:
res = obj.__getattribute__(fun)(*data)
else:
res = obj.__getattribute__(fun)()
result.append(res)
return result
if __name__ == '__main__':
datas = [
[[1,2,3,5,2],[3,2,1,4,2]],
]
for data_test in datas:
t0 = time.time()
print('-' * 50)
print('input:', data_test)
print('output:', test(data_test))
print(f'use time:{
time.time() - t0}s')
remarks :
GitHub:https://github.com/monijuan/leetcode_python
CSDN Summary : Simulation volume Leetcode Summary of questions _ Paper blog -CSDN Blog
You can add QQ Group communication :1092754609
leetcode_python.utils See the description on the summary page for details
First brush questions , Then generated by script blog, If there is any mistake, please leave a message , I see it will be revised ! thank you !
边栏推荐
- UnityShader入门精要个人总结--基础篇(一)
- channel. Detailed explanation of queuedeclare parameters
- Other 7 features of TCP [sliding window mechanism ▲]
- Uniapp wechat applet monitoring network
- IP地址的类别
- Required String parameter ‘XXX‘ is not present
- Isomorphic C language
- leetcode134. gas station
- Golang etcdv3 reports an error. The attribute in grpc does not exist
- 【istio简介、架构、组件】
猜你喜欢
Greenplum 6.x build_ install
let const
Greenplum 6.x build_ Environment configuration
UnityShader入门精要个人总结--基础篇(一)
[南京大学]-[软件分析]课程学习笔记(一)-introduction
使用Typora编辑markdown上传CSDN时图片大小调整麻烦问题
路由信息协议——RIP
Oracle makes it clear at one time that a field with multiple separators will be split into multiple rows, and then multiple rows and columns. Multiple separators will be split into multiple rows, and
LED模拟与数字调光
idea里使用module项目的一个bug
随机推荐
Gson converts the entity class to JSON times declare multiple JSON fields named
Several common database connection methods
PPT模板、素材下载网站(纯干货,建议收藏)
【微信小程序:缓存操作】
How to realize sliding operation component in fast application
如何统计项目代码行数
为不同类型设备构建应用的三大更新 | 2022 I/O 重点回顾
let const
Simple use of Xray
Redis fault handling "can't save in background: fork: cannot allocate memory“
Routing information protocol rip
NCS Chengdu New Electric interview Experience
Synchronized underlying principle, volatile keyword analysis
How to add a mask of a target in a picture
Original collection of hardware bear (updated on June 2022)
Database storage - table partition
idea里使用module项目的一个bug
OpenGL三维图形绘制
Common operating commands of Linux
模拟卷Leetcode【普通】1705. 吃苹果的最大数目