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

hot100 -- 14.贪心算法

1.买卖股票的最佳时机

方法:

def MaxProfit(prices):max_pro, min_num = 0, float('inf')for num in prices:if num < min_num:min_num = nummax_pro = max(max_pro, num - min_num)return max_pro

2.跳跃游戏

问题:

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

方法1:动态规划

# 方法1:动态规划:记录每一个位置能否到达
def MaxProfit(nums):dp = [False] * len(nums)# 考虑首元素为0的情况if len(nums)==1 and nums[0]==0:return Trueelif nums[0]==0:return Falsedp[0] = Truefor i in range(len(nums)):# 如果能到达,开始跳跃if dp[i]:for j in range(1, nums[i]+1):if i+j < len(nums):dp[i+j] = Trueelse:return True# 不能到达,直接返回else:return Falsereturn dp[-1]

方法2:贪心算法:只关心最终能否到达(推荐)

# 方法2:贪心算法:只关心最终能否到达(最远位置)(推荐)
def MaxProfit(nums):max_reach = 0for i in range(len(nums)):if max_reach < i:                           # 当前位置到不了return Falsemax_reach = max(max_reach, i + nums[i])return max_reach >= (len(nums)-1)

http://www.xdnf.cn/news/1054711.html

相关文章:

  • 土建施工安全管理难?免费AI系统 24h 监控预警
  • Android16变更
  • NodeJS哪些情况下会造成内存泄漏和避免方法
  • Unity3D仿星露谷物语开发63之NPC移动
  • 多模态大语言模型arxiv论文略读(122)
  • SAP实施服务专家——哲讯科技,赋能企业智慧升级
  • DAY 50 超大力王爱学Python
  • ROS2中,如果对rviz格式文件做了修改,都需要重新编译才可以launch出新的rviz配置对么?
  • 4,QT文件操作
  • 02-D3.js 控制横向柱图切换数据带动画效果
  • 创始人IP如何崛起:系统化打造的实践路径 | 创客匠人
  • web性能优化
  • 动态规划之斐波那契数(一)
  • 【已解决】bash: /usr/bin/perl: bad interpreter: No such file or directory
  • UI学习汇总
  • Yocto vs Buildroot:SDK(软件开发套件)创建能力全面对比
  • 快速入门多线程(一):线程生命周期详解(附流程图详解)
  • Python数字信号处理——利用块间系数相关性的DCT域鲁棒盲图像水印(PyQT5界面)
  • 【分析学】 实数
  • Spring事务传播机制深度解析
  • c++类型擦除
  • DNS递归查询步骤
  • 2. Anaconda 的安装及 Pytorch 环境安装
  • 2 Studying《Arm A715 Technical Reference Manual》
  • Java 常用类 Arrays:从零到实战的数组操作指南
  • 第五节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 角色管理模块(上)
  • 云知声“流血”上市:三年亏损超12亿元,负债高企,现金流紧张
  • 进程间通信之进程间传递文件描述符
  • 【杂谈】-剖析 LLMs 与 LRMs:人工智能推理的困境与展望
  • 深度学习---ONNX(Open Neural Network Exchange)