LeetCode 1014. 最佳观光组合 一次遍历数组,时间复杂度O(n)

news/2024/9/29 3:23:58/

1014. 最佳观光组合

today 1014 最佳观光组合

题目描述

给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,评分由 1 到 10^6 之间的整数。

一对景点(A[i], A[j])的观光总得分为 A[i] + A[j] + i - j,其中 i < j。

返回一对观光景点能取得的最高分。

示例

输入:[8,1,5,2,6]
输出:11
解释:i = 0, j = 2, A[i] + A[j] + i - j = 8 + 5 + 0 - 2 = 11输入:[1,2,3]
输出:0
解释:没有观光景点能取得更高的分数。

提示

  • 1 <= A.length <= 50000
  • 1 <= A[i] <= 10^6

解题思路

这道题最简单的思路是枚举所有的可能的景点对,然后计算每个景点对的得分,取最大值。但是这样会导致超时。

因此我们采用动态规划的方法,从后往前遍历数组,对于每个位置 i,我们计算 i 后续的最大分数。即ans = max(ans,values[i]+rightMax)

其中 rightMax=max(values[i-1],rightMax-1)

复杂度分析:

  • 只遍历一次数组,时间复杂度: O ( n ) O(n) O(n)
  • 空间复杂度: O ( 1 ) O(1) O(1)

代码实现

Python版本:

class Solution(object):def maxScoreSightseeingPair(self, values):ans=0n=len(values)rightMax=values[n-1]-1for i in range(n-2,-1,-1):ans=max(ans,rightMax+values[i])rightMax=max(rightMax-1,values[i]-1)return ans

Go版本:

func maxScoreSightseeingPair(values []int) int {ans := 0n := len(values)if n == 2 {return values[0] + values[1] - 1}rightMax := values[n-1]-1for j := n - 2; j >= 0; j-- {ans = max(ans, rightMax+values[j])rightMax = max(rightMax-1, values[j]-1)}return ans
}

http://www.ppmy.cn/news/1530665.html

相关文章

付费进群V5版本首发源码

付费进群V5版本首发 最新分站大屏 更新三个模板 仿官方模板等等 最新防注入技术 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89797314 更多资源下载&#xff1a;关注我。

【递归】5.leetcode 872 叶子相似的树

1 题目描述 题目链接&#xff1a;叶子相似的树 2 解答思路 递归分为三步&#xff0c;接下来就按照这三步来思考问题 第一步&#xff1a;挖掘出相同的子问题 &#xff08;关系到具体函数头的设计&#xff09; 第二步&#xff1a;只关心具体子问题做了什么 &#xff08;关…

工业交换机如何保证数据的访问安全

在现代工业自动化环境中&#xff0c;工业交换机作为关键的网络设备&#xff0c;扮演着数据传输和信息交互的重要角色。为了确保数据的访问安全&#xff0c;工业交换机不仅具备高效的转发性能&#xff0c;还集成了多层次的安全防护机制&#xff0c;以抵御各种潜在的网络威胁。 首…

alpine安装docker踩坑记

文章目录 前言错误场景正确操作最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;最近使用alpine操作系统上docker遇到了一些错误&#xff0c;尝试解决之后就准备输出一篇博客&#xff0c;帮助有需要的后人能够少踩坑&#xff0c;因为淋过雨所以想给别人撑伞 错误场景 我…

新产品,推出 MLX90372GVS 第三代 Triaxis® 位置传感器 IC,适用于汽车和工业系统(MLX90372GVS-ACE-308)

Triaxis 旋转和线性位置传感器IC&#xff1a; MLX90372GVS-ACE-103 MLX90372GVS-ACE-108 MLX90372GVS-ACE-301 MLX90372GVS-ACE-200 MLX90372GVS-ACE-208 MLX90372GVS-ACE-303 MLX90372GVS-ACE-300 MLX90372GVS-ACE-350 MLX90372GVS-ACE-100 MLX90372GVS-ACE-101 MLX90372GVS-…

OpenHarmony(鸿蒙南向)——平台驱动开发【SDIO】

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 概述 功能简介 SDIO&#xff08;Secure Digital Input and Outpu…

流 Stream

流 Stream 基础概念 流 流处理是对运动中的数据的处理&#xff0c;在生成或接收数据时直接计算数据。应用程序中分析和查询不断存在&#xff0c;数据不断地流经它们。在从流中接收到事件时&#xff0c;流处理应用程序对该事件作出反应。 如果我们使用传统的循环迭代方式对数…

1.随机事件与概率

第一章 随机时间与概率 1. 随机事件及其运算 1.1 随机现象 ​ 确定性现象&#xff1a;只有一个结果的现象 ​ 确定性现象&#xff1a;结果不止一个&#xff0c;且哪一个结果出现&#xff0c;人们事先并不知道 1.2 样本空间 ​ 样本空间&#xff1a;随机现象的一切可能基本…