每日一练 — 2022.01.30
文章目录
- 一,买卖股票的最佳时机 II
- 1,程序简介
- 注意:
- 示例 1:
- 示例 2:
- 示例 3:
- 提示:
- 2,程序代码
- 3,运行结果
- 二,分数到小数
- 1,程序简介
- 示例 1:
- 示例 2:
- 示例 3:
- 示例 4:
- 示例 5:
- 提示:
- 2,程序代码
- 3,运行结果
- 三,环形链表 II
- 1,程序简介
- 说明:
- 进阶:
- 示例 1:
- 示例 2:
- 示例 3:
- 提示:
- 2,程序代码
一,买卖股票的最佳时机 II
1,程序简介
给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:
- 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
示例 1:
- 输入: prices = [7,1,5,3,6,4]
- 输出: 7
- 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
示例 2:
- 输入: prices = [1,2,3,4,5]
- 输出: 4
- 解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
示例 3:
- 输入: prices = [7,6,4,3,1]
- 输出: 0
- 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
提示:
- 1<=prices.length<=3∗1041 <= prices.length <= 3 * 10^41<=prices.length<=3∗104
- 0<=prices[i]<=1040 <= prices[i] <= 10^40<=prices[i]<=104
2,程序代码
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 30 19:24:55 2022
Function: 买卖股票的最佳时机 II
@author: 小梁aixj
"""
class Solution(object):def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""hold = 0pric = []temp = []flag = 0msum = 0if len(prices) <= 2:if not prices:return 0if len(prices) == 1:return 0if prices[0] > prices[1]:return 0if prices[0] < prices[1]:return prices[1] - prices[0]for i in range(len(prices) - 1):if prices[i + 1] > prices[i] and hold != 1:hold = 1flag = icontinueif prices[i + 1] < prices[i] and hold == 1:pric.append(prices[flag])pric.append(prices[i])hold = 0else:continuefor i in range(0, len(pric), 2):temp.append(pric[i + 1] - pric[i])msum = sum(temp)if hold == 1:msum = msum + prices[-1] - prices[flag]return msum#%%
s = Solution()
print(s.maxProfit(prices = [7,1,5,3,6,4]))
3,运行结果
二,分数到小数
1,程序简介
给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 。
如果小数部分为循环小数,则将循环的部分括在括号内。
如果存在多个答案,只需返回 任意一个 。
对于所有给定的输入,保证 答案字符串的长度小于 10410^4104 。
示例 1:
- 输入:numerator = 1, denominator = 2
- 输出:“0.5”
示例 2:
- 输入:numerator = 2, denominator = 1
- 输出:“2”
示例 3:
- 输入:numerator = 2, denominator = 3
- 输出:“0.(6)”
示例 4:
- 输入:numerator = 4, denominator = 333
- 输出:“0.(012)”
示例 5:
- 输入:numerator = 1, denominator = 5
- 输出:“0.2”
提示:
- −231<=numerator,denominator<=231−1-2^{31} <= numerator, denominator <= 2^{31} - 1−231<=numerator,denominator<=231−1
- denominator!=0denominator != 0denominator!=0
2,程序代码
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 30 19:26:15 2022
Function: 分数到小数
@author: 小梁aixj
"""
class Solution(object):def fractionToDecimal(self, numerator, denominator):if numerator < 0 and denominator < 0:numerator, denominator = -numerator, -denominatoru = (numerator < 0) ^ (denominator < 0)numerator = abs(numerator)denominator = abs(denominator)numerator = numerator % denominatorif numerator == 0:return str(numerator // denominator)s = str(abs(numerator) // denominator) + "."q = {}l = []while numerator < denominator:numerator = numerator * 10l.append(numerator)q[numerator] = numerator // denominatornumerator = numerator % denominator * 10while numerator not in q and numerator != 0:l.append(numerator)q[numerator] = numerator // denominatornumerator = numerator % denominatornumerator = numerator * 10for i in range(0, len(l)):if numerator == l[i]:s = s + "("s = s + str(q[l[i]])if "(" in s:s = s + ")"if u:s = "-" + sreturn s
#%%
s = Solution()
print(s.fractionToDecimal(numerator = 1, denominator = 2))
3,运行结果
三,环形链表 II
1,程序简介
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。
说明:
- 不允许修改给定的链表。
进阶:
- 你是否可以使用 O(1) 空间解决此题?
示例 1:
- 输入:head = [3,2,0,-4], pos = 1
- 输出:返回索引为 1 的链表节点
- 解释:链表中有一个环,其尾部连接到第二个节点。
示例 2:
- 输入:head = [1,2], pos = 0
- 输出:返回索引为 0 的链表节点
- 解释:链表中有一个环,其尾部连接到第一个节点。
示例 3:
- 输入:head = [1], pos = -1
- 输出:返回 null
- 解释:链表中没有环。
提示:
- 链表中节点的数目范围在范围 [0, 10410^4104] 内
- −105<=Node.val<=105-10^5 <= Node.val <= 10^5−105<=Node.val<=105
- pos 的值为 -1 或者链表中的一个有效索引
2,程序代码
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 30 19:32:36 2022
Function: 环形链表 II
@author: 小梁aixj
"""
class ListNode:def __init__(self, x):self.val = xself.next = None
class Solution(object):def detectCycle(self, head):s = set()node = headwhile node is not None:if node in s:return nodeelse:s.add(node)node = node.nextreturn None
每日一练 — 2022.01.30相关推荐
- 信息学奥赛书籍 提高篇 --- 2022.01.30
1.信息学奥赛一本通 提高篇 2.算法训练营:海量图解+竞赛刷题(进阶篇)-2021.04 3.算法竞赛进阶指南(第六版) 4.<算法竞赛入门经典(第2版)>(推荐指数:5颗星)---20 ...
- Python 刷题常用语法与数据结构汇总-2022.01.30
[笔试]python刷题笔记(基础)! https://blog.csdn.net/a_123456598/article/details/105420802 python语法刷题 https://b ...
- 每日一词: 战略 2022.3.30
战略四问:我现在在哪?我要去哪?怎么去?到了之后怎么办? 邓巴数理论,最佳社交人数为150人. 下午自个用电脑批量删除了一波互动频率比较低的宣传号和旁友(360人左右).我们从心出发,奔赴山海. 如果 ...
- 【每日一练】108—一个登录页面的实现
写在前面 今天我们来写一个登录页面,这个在很多企业系统上都会用到,当然,一些网站上也用应用到,所以,它的应用场景还是很多的. 现在,我们一起来看一下它的最终效果: 以下是实现的源码. HTML代码: ...
- C语言每日一练——第81天:马克思手稿中的数学题
C语言每日一练 2022年2月17日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 马克思手稿中有一道趣味数学问题:有30个人,其中有男人.女人和小孩,他们在同一家饭馆吃饭,总 ...
- 【每日一练】100—一个渐变色计数器列表的实现
文 | 杨小爱 写在前面 今天我们迎来了[每日一练]栏目的第100个练习,在这几个月的持续练习中,我不知道,你学到了什么?是持续学习的习惯,还是前端基础知识? 但是,不管怎么样,只要持续的去做去学习自 ...
- 【每日一练】121—Tailwind CSS实现一套个人单页网站模板效果
作者 | 杨小爱 写在前面 今天是2023年的第三天,终于把2022送走了,也把2022的码和阳送走了,真的未来一切可期. 在2022年的最后几天,我们家全部阳了一遍,因此,也断更了一周时间,目前均在 ...
- C语言每日一练——第85天:三色球问题
C语言每日一练 2022年3月8日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少 ...
- 【C语言每日一练——第1练:字母大小写转换】
C语言每日一练 2022年6月13日 题目描述 从键盘输入一个大写字母,要求改用小写字母输出 分析 从键盘输入可以使用scanf或getchar等函数. 大写字母是一个字符,字符类型数据在C语言中是以 ...
最新文章
- 腾讯“科学探索奖”提名报名正式启动
- 【网络安全】Linux内核部分文件分析
- ASP.NET Core Identity 实战(1)——Identity 初次体验
- python爬斗鱼直播_Python爬取2000万直播数据——看20万游戏主播能否月入100万
- PyVmomi 初体验
- CF1066F Yet another 2D Walking
- 【OpenCV 例程200篇】35. 图像的投影变换(边界填充)
- canal 入门(1)
- 最优化学习---从解方程到最优化1
- 如何设置计算机的网络参数,如何正确设置电脑的IP地址和DNS等参数[图文]
- oracle创建dblink问题
- jquery高清视频教程_入门到精通
- Java高级:面试题-1
- 重装/重置系统后,针对于虚拟机需要输入许可证,仍无法打不开问题
- Robocup 仿真2D 学习笔记(一) ubuntu16.04 搭建 robocup 仿真2D环境
- 追寻职业榜样计算机论文翻译,追寻职业榜样征文
- EEG中的EOG伪迹
- css3-pie,CSS3pie是什么?
- 输出dom对象的HTML,console 输出 DOM 对象
- 【前辈经验】——前端职位描述
热门文章
- sun os查看oracle,solaris 系统信息查看
- 超详细Redis入门教程——Redis概述
- Redis基础使用(四)——缓存优化
- stp实验心得_STP 实验
- RTSP安防网络摄像头/海康大华硬盘录像机/NVR网页无插件低延时播放流媒体服务器EasyNVR页面显示网络请求失败问题
- url中如果有引号的处理
- 8.dfs--王子救公主(遍历迷宫,王子和公主访问过同一位置,即成功救公主)
- C++跨平台技术 - 线程Thread
- 网络营销好学吗?自学和培训该怎么选?
- 高级计算机培训 英语教案设计,第四课时英语教案设计