文章目录

  • 一,买卖股票的最佳时机 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,程序简介

  1. 给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 。

  2. 如果小数部分为循环小数,则将循环的部分括在括号内。

  3. 如果存在多个答案,只需返回 任意一个 。

  4. 对于所有给定的输入,保证 答案字符串的长度小于 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相关推荐

  1. 信息学奥赛书籍 提高篇 --- 2022.01.30

    1.信息学奥赛一本通 提高篇 2.算法训练营:海量图解+竞赛刷题(进阶篇)-2021.04 3.算法竞赛进阶指南(第六版) 4.<算法竞赛入门经典(第2版)>(推荐指数:5颗星)---20 ...

  2. Python 刷题常用语法与数据结构汇总-2022.01.30

    [笔试]python刷题笔记(基础)! https://blog.csdn.net/a_123456598/article/details/105420802 python语法刷题 https://b ...

  3. 每日一词: 战略 2022.3.30

    战略四问:我现在在哪?我要去哪?怎么去?到了之后怎么办? 邓巴数理论,最佳社交人数为150人. 下午自个用电脑批量删除了一波互动频率比较低的宣传号和旁友(360人左右).我们从心出发,奔赴山海. 如果 ...

  4. 【每日一练】108—一个登录页面的实现

    写在前面 今天我们来写一个登录页面,这个在很多企业系统上都会用到,当然,一些网站上也用应用到,所以,它的应用场景还是很多的. 现在,我们一起来看一下它的最终效果: 以下是实现的源码. HTML代码: ...

  5. C语言每日一练——第81天:马克思手稿中的数学题

    C语言每日一练 2022年2月17日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 马克思手稿中有一道趣味数学问题:有30个人,其中有男人.女人和小孩,他们在同一家饭馆吃饭,总 ...

  6. 【每日一练】100—一个渐变色计数器列表的实现

    文 | 杨小爱 写在前面 今天我们迎来了[每日一练]栏目的第100个练习,在这几个月的持续练习中,我不知道,你学到了什么?是持续学习的习惯,还是前端基础知识? 但是,不管怎么样,只要持续的去做去学习自 ...

  7. 【每日一练】121—Tailwind CSS实现一套个人单页网站模板效果

    作者 | 杨小爱 写在前面 今天是2023年的第三天,终于把2022送走了,也把2022的码和阳送走了,真的未来一切可期. 在2022年的最后几天,我们家全部阳了一遍,因此,也断更了一周时间,目前均在 ...

  8. C语言每日一练——第85天:三色球问题

    C语言每日一练 2022年3月8日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少 ...

  9. 【C语言每日一练——第1练:字母大小写转换】

    C语言每日一练 2022年6月13日 题目描述 从键盘输入一个大写字母,要求改用小写字母输出 分析 从键盘输入可以使用scanf或getchar等函数. 大写字母是一个字符,字符类型数据在C语言中是以 ...

最新文章

  1. 腾讯“科学探索奖”提名报名正式启动
  2. 【网络安全】Linux内核部分文件分析
  3. ASP.NET Core Identity 实战(1)——Identity 初次体验
  4. python爬斗鱼直播_Python爬取2000万直播数据——看20万游戏主播能否月入100万
  5. PyVmomi 初体验
  6. CF1066F Yet another 2D Walking
  7. 【OpenCV 例程200篇】35. 图像的投影变换(边界填充)
  8. canal 入门(1)
  9. 最优化学习---从解方程到最优化1
  10. 如何设置计算机的网络参数,如何正确设置电脑的IP地址和DNS等参数[图文]
  11. oracle创建dblink问题
  12. jquery高清视频教程_入门到精通
  13. Java高级:面试题-1
  14. 重装/重置系统后,针对于虚拟机需要输入许可证,仍无法打不开问题
  15. Robocup 仿真2D 学习笔记(一) ubuntu16.04 搭建 robocup 仿真2D环境
  16. 追寻职业榜样计算机论文翻译,追寻职业榜样征文
  17. EEG中的EOG伪迹
  18. css3-pie,CSS3pie是什么?
  19. 输出dom对象的HTML,console 输出 DOM 对象
  20. 【前辈经验】——前端职位描述

热门文章

  1. sun os查看oracle,solaris 系统信息查看
  2. 超详细Redis入门教程——Redis概述
  3. Redis基础使用(四)——缓存优化
  4. stp实验心得_STP 实验
  5. RTSP安防网络摄像头/海康大华硬盘录像机/NVR网页无插件低延时播放流媒体服务器EasyNVR页面显示网络请求失败问题
  6. url中如果有引号的处理
  7. 8.dfs--王子救公主(遍历迷宫,王子和公主访问过同一位置,即成功救公主)
  8. C++跨平台技术 - 线程Thread
  9. 网络营销好学吗?自学和培训该怎么选?
  10. 高级计算机培训 英语教案设计,第四课时英语教案设计