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

【算法】动态规划:python实现 2

实现一个动态规划算法

def knapsack(weights, values, capacity):n = len(weights)dp = [[0 for _ in range(capacity + 1)] for _ in range(n + 1)]for i in range(1, n + 1):for w in range(capacity + 1):if weights[i - 1] <= w:dp[i][w] = max(dp[i - 1][w], dp[i - 1][w - weights[i - 1]] + values[i - 1])else:dp[i][w] = dp[i - 1][w]return dp[n][capacity]

实现一个动态规划算法,不同路径的,机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角

def unique_paths(m, n):dp = [[1] * n for _ in range(m)]for i in range(1, m):for j in range(1, n):dp[i][j] = dp[i - 1][j] + dp[i][j - 1]return dp[m - 1][n - 1]

实现一个动态规划算法,给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。

说明:每次只能向下或者向右移动一步。

def min_path_sum(grid):m, n = len(grid), len(grid[0])dp = [[0] * n for _ in range(m)]dp[0][0] = grid[0][0]for i in range(1, m):dp[i][0] = dp[i - 1][0] + grid[i][0]for j in range(1, n):dp[0][j] = dp[0][j - 1] + grid[0][j]for i in range(1, m):for j in range(1, n):dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]return dp[m - 1][n - 1]

实现一个动态规划算法,删除并获得点数,给你一个整数数组 nums ,你可以对它进行一些操作。

每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。

开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。

def delete_and_earn(nums):if not nums:return 0max_num = max(nums)points = [0] * (max_num + 1)for num in nums:points[num] += numdp = [0] * (max_num + 1)dp[1] = points[1]for i in range(2, max_num + 1):dp[i] = max(dp[i - 1], dp[i - 2] + points[i])return dp[max_num]

实现一个动态规划算法,计算三角形的最短路径和,从顶部到底部的最小路径和

def minimum_total(triangle):if not triangle:return 0n = len(triangle)dp = triangle[-1][:]  # 从底部开始for i in range(n - 2, -1, -1):for j in range(len(triangle[i])):dp[j] = triangle[i][j] + min(dp[j], dp[j + 1])return dp[0]

在这里插入图片描述

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

相关文章:

  • 【APB协议时序及示例】
  • 2025美国券商交易系统综合开发及解决方案报告:低延迟、全球化与代币化技术赋能机构业务新生态
  • 摄像头AI智能识别工程车技术及应用前景展望
  • 武汉大学机器人学院启航:一场颠覆性的产教融合实验,如何重塑中国智造未来?
  • 【seismic unix数据处理--suvcat】
  • drawRect 触发时机
  • [特殊字符] Excel 提取+图片批量插入 | Python 自动化生成稽查报告 Word 模板
  • ubuntu 22.04 LTS 安装preempt-rt
  • pytorch底层原理学习--JIT与torchscript
  • 开机自动后台运行,在Windows服务中托管ASP.NET Core
  • 企业培训笔记:SpringBoot+MyBatis项目中实现分页查询
  • GraphPrompts:图神经网络领域的提示工程范式革新者
  • 学习笔记(28):随机噪声的原理、作用及代码实现详解
  • CC - Link IE转EtherCAT:石油石化软启动器的“最佳搭子”
  • 电商项目实例:基于Python京东商品API接口数据采集
  • 跨越传统界限:ChatGPT+ENVI/Python/GEE集成实战,覆盖无人机遥感、深度学习、洪水监测、矿物识别填图、土壤含水量评估等
  • 【Web前端】优化轮播图展示(源代码)
  • MDK(Keil MDK)工具链
  • cmake find_package
  • C++ 创建动态库及两种方法调用动态库
  • DINO 浅析
  • 医学+AI教育实践!南医大探索数据挖掘人才培养,清华指导发布AI教育白皮书
  • HarmonyOS应用开发高级认证知识点梳理 (四)状态管理V2应用级状态
  • AutoGen-AgentChat-1-整体了解
  • NestJS 系列教程(一):认识 NestJS 与项目初始化
  • RabbitMQ 高级特性之持久性
  • OpenCV仿射变换详解
  • 【飞算JavaAI】智能开发助手赋能Java领域,飞算JavaAI全方位解析
  • 红海云签约东莞科创金融集团,科创金融行业人力资源数字化
  • 论文阅读笔记——VGGT: Visual Geometry Grounded Transformer