Title

给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。

一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。

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

示例:

输入:[8,1,5,2,6]
输出:11
解释:i = 0, j = 2, A[i] + A[j] + i - j = 8 + 5 + 0 - 2 = 11

提示:

2 <= A.length <= 50000
1 <= A[i] <= 1000

Solve

暴力

暴力的方法最好想,但是肯定不会AC。

Code

 def maxScoreSightseeingPair(self, A: List[int]) -> int:length, ans = len(A), 0for i in range(length):for j in range(i + 1, length):ans = max(ans, A[i] + A[j] + i - j)return ans

暴力优化

回过来看公式:A[i] + A[j] + i - j,可以重新组合成(A[i] + i) + (A[j] - j),由于A[j] - j 是固定不变的,因此最大化A[i] + A[j] + i - j的值就相当于求[0, j - 1]中A[i] + i的最大值mx,景点j的答案即为mx + A[j] - j。

Code

 def maxScoreSightseeingPair(self, A: List[int]) -> int:ans, mx = 0, A[0] + 0for j in range(1, len(A)):ans = max(ans, mx + A[j] - j)mx = max(mx, A[j] + j)return ans

复杂度分析

时间复杂度: O(n),其中 n 为数组 A 的大小。我们只需要遍历一遍数组即可。
空间复杂度: O(1)。我们只需要常数空间来存放若干变量。

1014. Best Sightseeing Pair相关推荐

  1. C++:vector容器中使用pair该如何访问成员

    (显然,vector 的索引从 0 开始,这和普通数组一样.通过使用索引,总是可以访问到 vector 容器中现有的元素.) 如果是简单的访问vector里边的成员的话,是这样的: #include ...

  2. HDU - 5877 Weak Pair 2016 ACM/ICPC 大连网络赛 J题 dfs+树状数组+离散化

    题目链接 You are given a rootedrooted tree of NN nodes, labeled from 1 to NN. To the iith node a non-neg ...

  3. C++中标准模板库std::pair的实现

    以下用C++实现了标准模板库中的std::pair实现,参考了 cplusplus 和 vs2013中的utility文件. 关于std::pair的介绍和用法可以参考: https://blog.c ...

  4. lightoj 1014

    lightoj 1014 Ifter Party 链接:http://www.lightoj.com/volume_showproblem.php?problem=1014 题意:给你两个数 p, l ...

  5. C++_volatile限定修饰符 Pair类型

    Volatile限定修饰符 =========================================================== 当一个对象的值可能会在编译器的控制或检测之外被改变时 ...

  6. 推荐 | Pair,医学图像标注神器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在AI新基建时代,智能化医疗成为一种潮流趋势,其中医学影像标注为智 ...

  7. PPF(Point Pair Features)原理及实战技巧

    简介 基于Point Pair Features(PPF)的6D姿态估计方法PPF,Drost et al., 2010(https://ieeexplore.ieee.org/document/5 ...

  8. 6D位姿估计Point Pair Feature (PPF)算法详解

    作者丨丁洪凯@知乎 来源丨https://zhuanlan.zhihu.com/p/94952276 编辑丨3D视觉工坊 一.论文解读 论文: Drost et al. Model Globally, ...

  9. R语言配对图可视化:配对图(pair plot)可视化(根据分类变量的值为散点图上的数据点添加颜色和形状、Add color and shape by variables)

    R语言配对图可视化:配对图(pair plot)可视化(根据分类变量的值为散点图上的数据点添加颜色和形状.Add color and shape by variables) 目录

最新文章

  1. Python ModuleNotFoundError: No module named ‘xlrd‘
  2. 深入浅出LSTM神经网络
  3. Apache 访问权限修改
  4. Lync-技巧-1.启用-用户
  5. 【Matlab】编译器和工作区等窗口怎么调整位置?
  6. springmvc跳转html_SpringMVC基础(三)
  7. 浮点型数据类型存储空间大小(信息学奥赛一本通-T1017)
  8. 超前促销创意PSD分层电商海报,紧抓住消费冲突视觉力!
  9. vbs获取群聊当前内容_通过VBS脚本批量检测服务器状态 - 易本地工作室-Ebend SoftwareNetwork Studio - 群发,采集,管理类软件定制开发服务【易本地工作室】...
  10. 设置cmd命令提示符窗口界面语言为英文
  11. 网络科技行业再续签 易趋云助力搭建高效项目管理云平台
  12. 网络重置后,WiFi模块没了,网络适配器感叹号
  13. 可可私房菜:一个普通中国女孩的移动互联网创业经
  14. 详解Unity中的粒子系统Particle System (二)
  15. TIDB 性能测试(TIUP-TPCC)
  16. ModelAndView: materialized View is [null];和Action的onSubmit()方法不被执行
  17. 数据数仓的三种建模方式
  18. 中国电视企业逆势增长,助推中国制造走向世界
  19. Ubuntu 下面的aMule 的 Kad 或者 Ed2k 连不上
  20. 2023免费电脑c盘磁盘数据恢复软件EasyRecovery

热门文章

  1. 富文本编辑器 - wangEditor 表情
  2. C#使用BackgroundWorker实现多线程
  3. 算法——海量数据(5%)
  4. core data firing fault
  5. Web.Config介绍
  6. 关于:以前的某个程序安装已在安装计算机上创建挂起的文件操作解决办法(SQL2000)...
  7. mysql55和57的区别_技术分享 | MySQL:count(*)、count(字段) 实现上区别
  8. python copy函数用法_Python深浅拷贝
  9. 手动启动oracle服务教程,windows下手动启动oracle服务
  10. Java黑皮书课后题第3章:*3.13(金融应用:计算税款)程序清单3-5给出了计算单身登记人税款的源代码。将程序清单3-5补充完整,从而计算所有登记的婚姻状态的税款