当前位置: 首页 > news >正文

LeetCode Hot100 刷题笔记(7)—— 贪心

目录

前言

一、贪心

1. 买卖股票的最佳时机

2. 跳跃游戏

3. 跳跃游戏 II

4. 划分字母区间


前言

一、贪心:买卖股票的最佳时机,跳跃游戏,跳跃游戏 II,划分字母区间。


一、贪心

1. 买卖股票的最佳时机

原题链接:121. 买卖股票的最佳时机 - 力扣(LeetCode)

class Solution(object):
    def maxProfit(self, prices):
        cost = float('inf')
        profit = 0
        for price in prices:
            cost = min(cost, price)
            profit = max(profit, price-cost)
        return profit

2. 跳跃游戏

原题链接:55. 跳跃游戏 - 力扣(LeetCode)

class Solution(object):
    def canJump(self, nums):
        max_step = 0
        for i in range(len(nums)):
            if max_step < i:
                return False
            max_step = max(max_step, nums[i]+i)
        return True

3. 跳跃游戏 II

原题链接:45. 跳跃游戏 II - 力扣(LeetCode)

class Solution(object):
    def jump(self, nums):
        # [left, right] --> [i+1, nums[i]+i]
        # right < len(nums)-1
        if len(nums) <= 1:
            return 0
        n = len(nums)
        step = 1
        left, right = 1, nums[0]+0
        while right < len(nums)-1:
            for i in range(left, right+1):
                if nums[i]+i > right:
                    right = nums[i]+i
                    left = left + 1
            step += 1
        return step

4. 划分字母区间

原题链接:763. 划分字母区间 - 力扣(LeetCode)

class Solution(object):
    def partitionLabels(self, s):
        left, right = 0, 0
        n = len(s)
        res = []
        dicts = {k:v for v, k in enumerate(s)}
        while right < n-1:
            for idx, c in enumerate(s):
                right = max(right, dicts[c])
                if right == idx:
                    res.append(right-left+1)
                    left = right + 1
        return res

http://www.dtcms.com/a/109132.html

相关文章:

  • WPS JS宏编程教程(从基础到进阶)-- 第三部分:JS宏编程语言开发基础
  • Linux线程概念与控制:【线程概念(页表)】【Linux线程控制】【线程ID及进程地址空间布局】【线程封装】
  • 32f4,串口1,usart.c.h2025
  • EIP-712:类型化结构化数据的哈希与签名
  • 【行测】判断推理:图形推理
  • System.arraycopy()
  • SD 重温学习笔记
  • 深入理解 Python 中的 `server.listen(backlog)`:监听队列的奥秘
  • 《深度探秘:SQL助力经典Apriori算法实现》
  • GO语言学习(17)Gorm的数据库操作
  • 两点与圆(异或神通)
  • 快速求平方根
  • 【每日一个知识点】分布式数据湖与实时计算
  • Ubuntu上离线安装ELK(Elasticsearch、Logstash、Kibana)
  • Vulkan实例教程1 - Vulkan应用程序结构(附代码)
  • node ---- 解决错误【Error: error:0308010C:digital envelope routines::unsupported】
  • 第一部分 领域驱动设计的原则与实践
  • 10.多线程
  • 【C++】第八节—string类(上)——详解+代码示例
  • P4305 [JLOI2011] 不重复数字
  • 系统与网络安全------Windows系统安全(8)
  • 纯c++实现transformer 训练+推理
  • AI+自动化测试:如何让测试编写效率提升10倍?
  • torch 拆分子张量 分割张量
  • idea运行tomcat项目,很慢的问题
  • 我想尝试做一个钢铁侠反应堆
  • 人工智能与大模型的关系
  • Java学习总结-io流-练习案例
  • 4.3学习总结
  • umi框架开发移动端h5