本文主要是介绍ARTS Week 23,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Algorithm
本周的算法题为 1014. 最佳观光组合
给你一个正整数数组 values
,其中 values[i]
表示第 i
个观光景点的评分,并且两个景点 i
和 j
之间的 距离 为 j - i
。
一对景点(i < j
)组成的观光组合的得分为 values[i] + values[j] + i - j
,也就是景点的评分之和 减去 它们两者之间的距离。
返回一对观光景点能取得的最高分。
示例 1:
输入:values = [8,1,5,2,6]
输出:11
解释:i = 0, j = 2, values[i] + values[j] + i - j = 8 + 5 + 0 - 2 = 11
实现代码如下:
const maxScoreSightseeingPair = function (values) {
let maxValue = 0
let maxPrev = values[0] // 记录前面位置能够得到的最大得分
for (let i = 1; i < values.length; i++) {
maxValue = Math.max(maxValue, maxPrev + values[i] - i) // 计算当前位置的得分
maxPrev = Math.max(maxPrev, values[i] + i) // 更新前面位置能够得到的最大得分
}
return maxValue
}
解题思路:
一开始我以为使用两个for
循环然后通过Math.max()
比较一下取最大值就解出来,然后提交到力扣后,提示超出时间限制。
为了解决这个问题,可以使用动态规划来优化算法以避免重复计算,通过调整计算公式为values[i] + i + (values[j] - j)
,可以将当前位置的值加上索引值,再加上下一个位置的值减去索引值,然后取最大值。因此,可以将values[i] + i
和values[j] - j
分别都取最大值,然后再比较两者的和,从而得到观光景点能取得的最高分。
Review
Human speech is 8 times older than we thought - Breaking News English Lesson
研究人员表示,他们已经找到了人类开始说话的可能历史时期。考古学家、史前史专家史蒂文·米森博士认为,基础语言形成于大约160万年前。这比许多科学家之前认为的时间早了八倍。进化学专家先前认为,人类口头语言始于大约20万年前。米森表示,他的研究显示,第一种人类语言要么在东非,要么在南非发展起来的。他说,说话的能力促进了进化。他说,语言“无疑是使随后大部分人类身体和文化进化成为可能的关键”。
米森博士在他的新书《语言之谜》(The Language Puzzle)中解释了他认为人类语言是如何在如此久远的过去发展起来的。他说,我们的大脑在大约150万年前迅速增大。这种增长改变了我们大脑的结构。一个称为额叶的区域发展了起来,这是大脑产生语言的部分。另一个重要的变化是我们声道的发育,这是我们产生声音,因此得以说话的地方。米森说,语言让人类得以传播到世界各地。这意味着人类可以做三件重要的事情。他们可以考虑和计划未来的行动,他们还可以传授知识。米森说,语言“深刻地改变了人类的故事”。
Tip
打算将自己博客使用的PaperMod主题更新一下,然后放弃本地的修改,因为使用git pull
时提示了本地有变动的部分,需要先处理才行,我觉得不是很重要,就打算放弃本地修改,强制更新,使用如下命令:
git fetch --all
git reset --hard origin/master
git clean -f -d
三个命令解释如下:
-
git fetch --all
:从远程仓库获取最新的内容。 -
git reset --hard origin/master
:将本地仓库的内容重置为与远程仓库相同,包括放弃任何本地修改。 -
git clean -f -d
:清除工作目录中未跟踪的文件和目录。
Share
抓而不紧,等于不抓。
本文由 mdnice 多平台发布
这篇关于ARTS Week 23的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!