Leetcode 刷题笔记1 贪心算法part02

【LeetCode题目详解】第八章 贪心算法 part02 122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II (day32补) 股票问题其实是一个系列的,属于动态规划的范畴,因为目前在讲解贪心系列,所以股票问题会在之后的动态规划系列中详细讲解。可以看出有时候,贪心往往比动态规划更巧妙,更好用,所以别小看了贪心算法。本题中理解利润拆分是关键点!不要整块的去看,而是把整体利润拆为每天的利润。一旦想到这里了,很自然就会想到贪心了,即:只收集每天的正利润,最后稳稳的就是最大利润了。这道题目关键点在于:不用拘泥于每次究竟跳几步,而是看覆盖范围,覆盖范围内一定是可以跳过来的,不用管是怎么跳的。大家可以看出思路想出来了,代码还是非常简单的。 阅读详情

leetcode 122 买股票的最佳时机||

简单题

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        result = 0
        for i in range(1, len(prices)):
            profit = prices[i] - prices[i - 1]
            result += max(profit, 0)
        return result

leetcode 55 跳跃游戏

初步理解贪心是对遍历的剪枝

class Solution:
    def canJump(self, nums: List[int]) -> bool:
        cover = 0
        if len(nums) < 2 : return True
        for i in range(len(nums)):
            if i <= cover:
                cover = max(i + nums[i], cover)
            if cover >= len(nums) - 1:
                return True
        return False

leetcode 45 跳跃游戏||

好难 摸不到规律

class Solution:
    def jump(self, nums: List[int]) -> int:
        if len(nums) == 1:
            return 0
        cur_distance, next_ditance, ans = 0, 0, 0
        for i in range(len(nums)):
            next_ditance = max(next_ditance, nums[i] + i)
            if i == cur_distance:
                cur_distance = next_ditance
                ans += 1
                if next_ditance >= len(nums) - 1:
                    break
        return ans

leetcode 1005 k次取反后最大化的数组和

class Solution:
    def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:
        nums.sort(key = lambda x: abs(x), reverse = True)
        for i in range(len(nums)):
            if nums[i] < 0 and k > 0:
                nums[i] *= -1
                k -= 1
        if k % 2 == 1:
            nums[-1] *= -1
        return sum(nums)

关于贪心算法,从上述题目中并没有体会到其特殊之处,对它的初步印象还是暴力解法的优化

SerDes系列之FFE均衡技术 FFE的基本结构可以在RX侧或TX侧实现,其基本工作原理相同:它通过从同一信号源应用适当的延迟来产生多径信号,然后对它们进行线性缩放和组合以消除信道ISI。 阅读详情

相关推荐

MST-GAT: Enhancing Anomaly Detection in Multimodal Time Series with Intra- and Inter-Modal Attention

本文深入解析了MST-GAT模型,这是一种通过模态内与模态间注意力机制增强多模态时间序列异常检测的新方法。它通过构建图结构显式建模传感器间的复杂时空依赖,并结合时间卷积网络与联合优化策略,有效降低了传统方法中常见的误报与漏报问题,在工业监控等场景中展现出卓越性能。

weixin_29079671的博客 150

day 28 第八章 贪心算法 part02

贪心算法在这里的体现是,我们不考虑整体的买卖策略规划,而是着眼于每一天的价格变化情况,只要发现第二天的股价比第一天高,那我们就在第一天买入,第二天卖出,这样就能获取这两天之间的差价利润,通过不断累积这些差价利润,最终就能得到总的最大利润。贪心算法的体现是,我们不尝试去枚举所有可能的跳跃组合方式来找到最小跳跃次数,而是在每一步跳跃中,都尽可能选择能拓展更远覆盖范围的位置进行跳跃,通过不断更新覆盖范围以及记录跳跃次数,最终得到到达终点的最小跳跃次数。或者长度为 0,那自然不存在跳跃一说,直接返回 0;

m0_72789504的博客 1126

二维otsu算法python_OpenCV-Python系列之OTSU算法

上一个教程中,我们谈到了关于图像二值化的两种方法,一种是固定阈值法,另一种是自适应阈值法,总的来说,自适应阈值法在某些方面要由于固定阈值法,但还没完,这次我们将隆重介绍我们的重量级选手,也就是OTSU算法(又称为大津算法和最大类间方差法)。最大类间方差法是1979年由日本学者大津提出的,是一种自适应阈值确定的方法,又叫大津法,简称OTSU,是一种基于全局的二值化算法,它是根据图像的灰度特性,将图像...

weixin_28834169的博客 1426

贪心算法part02算法

● 122.买卖股票的最佳时机II● 55. 跳跃游戏● 45.跳跃游戏II。

Belle_Daisy的博客 843

AMD MI355X与NVIDIA B200在GLM5.2大模型推理性能与成本对比分析

在 AI 推理硬件选型中,成本与性能的平衡一直是技术决策的核心难点。AMD 最新发布的 CDNA 4 架构 MI355X 加速卡与 NVIDIA Blackwell 架构的 B200 在 GLM5.2 这类千亿参数大模型上的表现,直接关系到企业部署私有化模型或提供推理服务的经济性。实际测试数据显示,在 32 tok/s/user 的交互性设定下,单张 MI355X 能够达到 1369 tok/s 的吞吐量,虽然略低于 B200 的 1756 tok/s,但每百万 token 成本仅为 0.30 美元,比 B

weixin_28221501的博客 295

别再死磕MuJoCo了!用PyBullet+Stable-Baselines3搞定机械臂强化学习(保姆级环境配置)

本文详细介绍了如何使用PyBullet和Stable-Baselines3构建机械臂强化学习系统,绕过昂贵的MuJoCo许可壁垒。通过实战指南,包括环境配置、机械臂Gym环境构建、训练策略与调优技巧,帮助开发者快速掌握机器人强化学习技术,提升智能控制效率。

weixin_42667269的博客 264

Leetcoder Day28| 贪心算法part02

上一题中,我们总结重要的是要看覆盖的范围并且进行更新,这次我们关键是要看什么时候给步数+1,最直接的想法就是每次都走当前位置所能覆盖的最大步数。比如 [7,1,5,3,6,4],每天的利润为[-6, 4, -2, 3, -2],因为买卖的区间为第2-3天,第4-5天,总利润为4+3=7。每次下标i都在cover的范围内移动,每移动一个元素,cover就会进行判断是否当前元素覆盖的范围大于之前的cover值,如果大于则更新cover,如果cover大于或等于最后一个元素的下标,则表示可以达到最后的位置。

dawnstudy 1212

Android perfetto 简介

android linux 性能优化 原理及操作

求变,从思想开始 3479

贪心算法 | part02

仔细想一想,跟我们的一般想法结果是一致的,我们期待的就是找到一天价格低的时候买入,再找一天高的时候卖出。比如到了一个低点,我们向后,得到的利润肯定是正的,如果高点与这个点相差了几天,我们就可以收集这几天的利润,也就是我们的一般想法,同时用的就是贪心每天的利润max,只加上正的利润。我们希望的是获取最大的利润,贪心思路就是我们要“贪”每天的利润,让每天的利润最好都是正的,我们可以计算股票价格数组,每天的利润,可以得到每天的利润,我们将所有正的利润都加在一起,最后的结果就是我们要的最大利润。

2403_88856345的博客 468

HyperLynx(十三)Hyperlynx前放置之对网络的EMC分析

在“Spectrum Analyzer”对话框的“Stimulus”(激励)栏中,设置激励源频率为100MHz,选择“IC modeling”为“Fast-Strong”,并按图所示设置其他选项。显然,在仿真的基频上,它的幅值最大,将鼠标光标置于柱状图上,可以读取其值为64.28mA,这个数值是由选定的驱动芯片决定的。按上图所示的原理图,在接收端增加一个并联的RC负载,再次运行仿真,结果如图所示。在对话框左侧的“Pins”列表中,显示出了已添加电流探针的引脚,可以在此列表中选择所要仿真的目标。...

小幽余生不加糖 4679

SAP CBC 集成质量系统初始化接入实战指南

摘要 本文探讨了SAP S/4HANA Cloud Public Edition项目中质量系统的初始接入过程。质量系统并非开箱即用,而是需要经过SAP Central Business Configuration(CBC)的Scope and Organizational Structure阶段部署后才能具备完整功能。文章重点分析了几个关键环节:CBC里程碑确认的时机选择、Identity Authentication的初始管理员设置、Business Role Template的创建规范等。实施过程中需特

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1407

Leetcode 刷题笔记1 贪心算法part03

leetcode 134 加油站。

pinglejun的博客 361

人工智能技术基础系列之:迁移学习

作者:禅与计算机程序设计艺术 1.背景介绍 随着深度学习和神经网络的快速发展,越来越多的应用场景需要处理大量的数据和复杂的任务。然而,由于计算资源、存储空间等条件的限制,传统的人工智能方法往往不能满足实际需求。因此,为了提高效率和降低成本,研究人员提出了迁移学习的概念。本篇文章将详细介绍迁移学习的基

AI天才研究院 699

《趣学算法(第2版)》读书笔记 Part 1 :如何高效学习算法

直播流水账不能水,是小白最后的倔强。 这竟然是我在 优快云 写的第一篇博文...(战战兢兢,如履薄冰)

浪里个狼游记 1559

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

求职刷题力扣DAY31---贪心算法part03

因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。输入:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]输入:people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]输出:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]输出:[[4,0],[5,0],[2,2],[3,2],[1,4],[6,0]]你从其中的一个加油站出发,开始时油箱为空。

qq_44486787的博客 1047

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

求职刷题力扣DAY30---贪心算法part02

在每一天,你可以决定是否购买和/或出售股票。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。向前跳转的最大长度。生成的测试用例可以到达。你也可以先购买,然后在。以这种方式修改数组后,返回数组。可以多次选择同一个下标。处,你可以跳转到任意。给你一个非负整数数组。

qq_44486787的博客 585

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Leetcode 刷题笔记1 贪心算法part01

leetcode 53 最大子数组和。

pinglejun的博客 231

Leetcode 刷题笔记1 贪心算法part05

本题与重叠区间的思路基本一致,需要注意的是如何更新结果里的区间元素。本题先将第一个区间放入result中,然后将其与接下来的区间进行比较来决定更不更新区间。

pinglejun的博客 288

Leetcode刷题笔记1 贪心算法part04

本题被如何更新边界考住了。

pinglejun的博客 254

求职刷题力扣DAY33--贪心算法part04

有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是。处射出一支箭,若有一个气球的直径的开始和结束坐标为。这道题结合合并区间一起来看,合并区间取并集,这里取交集。你不知道气球的确切 y 坐标。弓箭一旦被射出之后,可以无限地前进。需要移除区间的最小数量,使剩余区间互不重叠。返回一个表示每个字符串片段的长度的列表。可以射出的弓箭的数量。

qq_44486787的博客 792

代码随想录算法训练营第24天 | 第八章 贪心算法 part02

第八章 贪心算法 part02122. 买卖股票的最佳时机 II 55. 跳跃游戏 45. 跳跃游戏 II 1005. K 次取反后最大化的数组和 学习了lambda函数

zxjiaya的博客 845

求职刷题力扣DAY34--贪心算法part05

最后还要对根节点进行单独的判断,如果root没有覆盖需要 + 1。# 三种状态0:没有覆盖,1:已覆盖 2:安装摄像头。#空节点,已覆盖,这样叶子节点不用单独判断了。# 假如左右只有要没有覆盖,则需要安装摄像头。# 假如左右有一个有摄像头,当前为已覆盖。# 其他情况表示未覆盖。

qq_44486787的博客 659

DAY27|贪心算法Part01|LeetCode:455.分发饼干、376. 摆动序列、53. 最大子序和

在做一个题目的时候,靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划。那么什么时候可以使用贪心算法呢?。

ning1437589742的博客 1471

一个菜鸟前端刷leetcode的那些事 Part1

前言 2018年年底, 呆了不到一年的公司就这样解散了。遥想当初3月份刚刚加入公司的时候, 公司刚刚拿到数亿的B轮融资。6月份又是数亿元的B+轮融资。又是换写字楼又是在外滩大屏幕上打广告好不热闹,结果12月公司就关门了。真是世事无常啊。 1. 两数之和 原题 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种...

weixin_34297704的博客 1943

day 27 第八章 贪心算法 part01

贪心算法在此处的体现是,我们在遍历数组时,每一步都基于当前的情况做出局部最优选择,即只要当前连续子数组的累加和是正数,就有可能对后续形成更大的和有帮助,那就继续累加;而一旦累加和变为负数了,那它对于后续求最大和就没有好处了,此时就舍弃之前的累加结果,重新开始计算新的连续子数组的和,通过这样不断地选择,最终找到整个数组中的最大子数组和。贪心算法在这里的体现就是,我们希望尽可能多地保留那些能让序列呈现出摆动特性(差值正负交替)的元素,每遇到一次符合摆动特征的相邻元素对,就认为可以增加摆动序列的长度。

m0_72789504的博客 1299

代码随想录Day31:贪心算法Part1

然后呢做到这一点需要明白一个道理就是我们在遍历的时候,如果发现了当前的子数组和已经变成了负数,就是if statement 中的情况,那就要注意了,这意味着当遍历到下一个数字的时候,如果这个数字是负数,那只会让我们的连续和变得更小,如果这个数是正数,那么算上他还不如直接把他作为新的子数组的开始,还不用被拖累变小,所以无论正数还是负数,当我们目前的子数组连续和已经小于0了之后,就应该在下一个数字直接开启一个新的子数组,这就是局部的最优解,保证目前记录的子数组是包括当前数字的最大值。

weixin_72783626的博客 780
上一篇: Leetcode 刷题笔记1 贪心算法part01
下一篇: Leetcode 刷题笔记1 贪心算法part03
平乐君
博客等级 码龄5年 65粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值