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

Leetcode3282. 到达数组末尾的最大得分

Every day a Leetcode

题目来源:3282. 到达数组末尾的最大得分

解法1:动态规划

代码:

class Solution {
public:long long findMaximumScore(vector<int>& nums) {if (nums.size() <= 1) return 0LL;int n = nums.size();vector<long long> dp(n + 1);dp[0] = 0;for (int j = 1; j <= n; j++) {for (int i = 1; i < j; i++) {dp[j] = max(dp[j], dp[i] + 1LL * (j - i) * nums[i - 1]);}}return dp[n];}
};

结果:超时

复杂度分析:

时间复杂度:O(n2),其中 n 是数组 nums 的长度。

空间复杂度:O(n),其中 n 是数组 nums 的长度。

解法2:动态规划 + 贪心

维护一个 maxIndex 表示之前 nums 元素最大值的下标,从贪心的角度思考,从maxIndex 跳到当前下标 i,增加的值最大。

代码:

/** @lc app=leetcode.cn id=3282 lang=cpp** [3282] 到达数组末尾的最大得分*/// @lc code=start
class Solution
{
public:long long findMaximumScore(vector<int> &nums){if (nums.size() <= 1)return 0LL;int n = nums.size();vector<long long> dp(n);dp[0] = 0;int maxIndex = 0;for (int i = 1; i < n; i++){dp[i] = dp[maxIndex] + 1LL * (i - maxIndex) * nums[maxIndex];if (nums[i] > nums[maxIndex])maxIndex = i;}return dp[n - 1];}
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 是数组 nums 的长度。

空间复杂度:O(n),其中 n 是数组 nums 的长度。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • new/delete和malloc/free到底有什么区别
  • VUE + NODE 历史版本安装
  • AWTK fscript 中的 value 扩展函数
  • synchronized的详解、锁的升级过程和优缺点比较
  • Maven 解析:打造高效、可靠的软件工程
  • JavaSE:9、数组
  • 3. 进阶指南:自定义 Prompt 提升大模型解题能力
  • 记录word转xml文件踩坑
  • 机器学习特征构建与特征筛选
  • Vue3实现打印功能
  • LeetCode[中等] 3. 无重复字符的最长子串
  • 简洁明了!中缀表达式转为后缀表达式规则及代码
  • 第L6周:机器学习-随机森林(RF)
  • 计算机网络 ---- 计算机网络的体系结构【计算机网络的分层结构】
  • Python和MATLAB及C++信噪比导图(算法模型)
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【前端学习】-粗谈选择器
  • CEF与代理
  • co.js - 让异步代码同步化
  • DOM的那些事
  • ECS应用管理最佳实践
  • Git的一些常用操作
  • HTML5新特性总结
  • Map集合、散列表、红黑树介绍
  • MySQL用户中的%到底包不包括localhost?
  • Nacos系列:Nacos的Java SDK使用
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 包装类对象
  • 复习Javascript专题(四):js中的深浅拷贝
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 聚簇索引和非聚簇索引
  • 实战|智能家居行业移动应用性能分析
  • 物联网链路协议
  • 新书推荐|Windows黑客编程技术详解
  • elasticsearch-head插件安装
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​ArcGIS Pro 如何批量删除字段
  • ​Java基础复习笔记 第16章:网络编程
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • #FPGA(基础知识)
  • $.ajax,axios,fetch三种ajax请求的区别
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2015)JS ES6 必知的十个 特性
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (六)Flink 窗口计算
  • (七)glDrawArry绘制
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (学习日记)2024.01.19
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)基于IDEA的JAVA基础10
  • (幽默漫画)有个程序员老公,是怎样的体验?