Python每日一练(20230316)
创始人
2025-05-29 08:38:43
0

目录

1. 买卖股票的最佳时机  ★★

2. 麦克的分家遗嘱  ★★

3. 分发糖果  ★★★

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

示例 1:

输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例 2:

输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 没有交易完成, 所以最大利润为 0。

提示:

  • 1 <= prices.length <= 10^5
  • 0 <= prices[i] <= 10^4

代码:

class Solution(object):def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""temp = []if not prices or len(prices) == 1:return 0for i in range(len(prices) - 1):temp.append(max(prices[i + 1 :]) - prices[i])if max(temp) >= 0:return max(temp)else:return 0if __name__=='__main__':s = Solution()print(s.maxProfit([7,1,5,3,6,4]))print(s.maxProfit([7,6,4,3,1]))

2. 麦克的分家遗嘱

将一组数尽可能均匀地分成两堆,使两个堆中的数的和尽可能相等

麦克叔叔去世了,他在遗嘱中给他的两个孙子阿贝和鲍勃留下了一堆珍贵的口袋妖怪卡片。遗嘱中唯一的方向是“尽可能均匀地分配纸牌的价值”。作为Mike遗嘱的执行人,你已经为每一张口袋妖怪卡片定价,以获得准确的货币价值。你要决定如何将口袋妖怪卡片分成两堆,以尽量减少每一堆卡片的价值总和的差异。
例如,你有下列n=8 个口袋妖怪卡片:

经过大量的工作,你发现你可以用下面的方法来划分卡片:

这给了安倍10美元的牌给了鲍勃11美元的牌。这是最好的除法吗?
你要做的是解决n张牌的问题其中每张牌ci都有一个正整数值vi.你的解决方法是计算牌应该如何被分割以及每摞牌的价值。
输入输出示例如下:


1.通过检查所有可能的桩以蛮力解决此问题。 对这种蛮力算法的时间复杂度进行分析,并通过实施和实验验证您的分析结果(既写出来算法的设计思路等),并用python算法实现编程
2.通过动态编程开发更有效的算法。 您应该首先通过动态编程的思想来分析此问题,并编写相应的递归属性。 对这种算法的时间复杂度进行分析,并通过实施和实验验证您的分析结果。并用python代码实现动态编程

代码:

def deal(data,flag):a=[]for i in data:if i >= flag:return [i]elif a == []:a.append([i])else:a += [k+[i] for k in a if sum(k)+i <= flag]a.append([i])target = sum(max(a,key=sum))return list(filter(lambda x:sum(x)==target,a))if __name__=='__main__':c = [2,1,3,1,5,2,3,4]flag = sum(c)//2res = deal(c,flag)print(res)

3. 分发糖果

老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。

你需要按照以下要求,帮助老师给这些孩子分发糖果:

  • 每个孩子至少分配到 1 个糖果。
  • 评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。

那么这样下来,老师至少需要准备多少颗糖果呢?

示例 1:

输入:[1,0,2]
输出:5
解释:你可以分别给这三个孩子分发 2、1、2 颗糖果。

示例 2:

输入:[1,2,2]
输出:4
解释:你可以分别给这三个孩子分发 1、2、1 颗糖果。
第三个孩子只得到 1 颗糖果,这已满足上述两个条件。

代码: 

class Solution(object):def candy(self, ratings):""":type ratings: List[int]:rtype: int"""if ratings == None:return 0lenth = len(ratings)dp = [1 for i in range(lenth)]sum = 0for i in range(1, len(ratings)):if ratings[i] > ratings[i - 1]:dp[i] = dp[i - 1] + 1for i in range(len(ratings) - 2, -1, -1):if ratings[i] > ratings[i + 1] and dp[i] <= dp[i + 1]:dp[i] = dp[i + 1] + 1for i in range(lenth):sum += dp[i]return sumif __name__=='__main__':s = Solution()print(s.candy([1,0,2]))print(s.candy([1,2,2]))

🌟 每日一练刷题专栏 🌟

✨ 持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

 评论,你的意见是我进步的财富!  

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

相关内容

热门资讯

重庆优化创业担保贷款政策 近日,重庆市人力社保局、市财政局、中国人民银行重庆市分行联合印发《关于调整优化我市创业担保贷款工作的...
鼓励村民承包村道养护工作!新修... 日前,省十四届人大常委会第十九次会议修订通过《四川省农村公路条例》(以下简称《条例》),自2025年...
原创 狗... 广州一位52岁阿姨的操作直接冲上热搜——她立遗嘱专门划出10多万元,留给自己收养的4只流浪狗!网友炸...
6月A股行情展望:政策驱动与结... 投资信息太多太杂,不知道什么是重点?「华彬金融观察」公众号,深度研判市场动态。从热点追踪、走势分析、...
自然人网店监管难题如何解(政策... 制图:张芳曼 农家特产从田间地头直达城市餐桌,设计师独家定制手作陶艺……近年来,自然人网店快速发展,...
以制度牵引完善职业健康保障 近日,新版《职业病分类和目录》正式发布,将职业性腕管综合征(俗称“鼠标手”)和创伤后应激障碍纳入职业...
借政策东风,创美好生活(今日谈... 端午假期,选购新能源汽车的消费者络绎不绝,一些门店看车的客流量显著增加。得益于消费品以旧换新政策,消...
亿利达:诉讼事项进展 金融界4月23日消息,亿利达公告称,公司于近日收到安徽省合肥市包河区人民法院送达的(2022)皖 0...
菲媒:菲律宾副总统称,不优先考... 【环球网报道】综合菲律宾《马尼拉标准报》等媒体6月1日报道,菲律宾副总统莎拉·杜特尔特称,她不优先考...
原创 美... 特朗普再次执掌白宫后,他的“地盘扩张梦”可谓是雷声大雨点小,搞得沸沸扬扬却未见实效。他本想一口气吞掉...