ARTS Week 23

2024-03-30 05:12
文章标签 23 week arts

本文主要是介绍ARTS Week 23,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Algorithm

本周的算法题为 1014. 最佳观光组合

给你一个正整数数组 values,其中 values[i] 表示第 i 个观光景点的评分,并且两个景点 ij 之间的 距离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] + ivalues[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

三个命令解释如下:

  1. git fetch --all:从远程仓库获取最新的内容。
  2. git reset --hard origin/master:将本地仓库的内容重置为与远程仓库相同,包括放弃任何本地修改。
  3. git clean -f -d:清除工作目录中未跟踪的文件和目录。

Share

抓而不紧,等于不抓。

本文由 mdnice 多平台发布

这篇关于ARTS Week 23的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/860562

相关文章

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

华为23年笔试题

消息传输 题目描述 在给定的 m x n (1 <= m, n <= 1000) 网格地图 grid 中,分布着一些信号塔,用于区域间通信。 每个单元格可以有以下三种状态:  值 0 代表空地,无法传递信号;  值 1 代表信号塔 A,在收到消息后,信号塔 A 可以在 1ms 后将信号发送给上下左右四个方向的信号塔; 值 2 代表信号塔 B,在收到消息后,信号塔 B 可以在 2ms

【vulhub】thinkphp5 2-rce 5.0.23-rce 5-rce 漏洞复现

2-rec 1.启动环境  cd /.../vulhub/thinkphp/2-rce # cd进入2-rce靶场文件环境下docker-compose up -d # docker-compose启动靶场docker ps -a # 查看开启的靶场信息 2.访问192.168.146.136:8080网页 3.构造payload http

【linux mysql】mysql高版本8.0.23版本密码修改总结

mysql 8.0 版本,由于增加了一些安全策略等限制,所以修改用户密码会稍微麻烦些。下面是针对这个高版本的总结。 一、配置/etc/my.cnf 文件 免密码登录mysql vim /etc/my.cnf# 增加这两行命令skip-grant-tablesdefault-authentication-plugin=mysql_native_password 重启启动mysql se

第23周:使用Word2vec实现文本分类

目录 前言 一、数据预处理 1.1 加载数据 1.2 构建词典 1.3 生成数据批次和迭代器 二、模型构建 2.1 搭建模型 2.2 初始化模型 2.3 定义训练和评估函数 三、训练模型 3.1 拆分数据集并运行模型 3.2 测试指定数据 总结 前言 🍨 本文为[🔗365天深度学习训练营]中的学习记录博客🍖 原作者:[K同学啊] 说在前面 本周任务

Android Studio:Error:(23, 17) Failed to resolve: junit:junit:4.12

在Android Studio中创建项目之后,可能会遇到错误:Error:(23, 17) Failed to resolve: junit:junit:4.12,这是因为项目引用到了Junit单元测试工具。 该错误的解决方法是找到项目中的build.gradle文件,如下: 打开该文件,注释掉或者删除掉junit:junit:4.12的引用,如下:

23. C 语言,%d 和 %i的区别

在 C 语言中,%d 和 %i 都用来打印十进制整数。虽然它们在大多数情况下是可以互换使用的,但还是有一些细微的区别,特别是在解析输入时: %d 和 %i 的区别 打印时的区别: 对于打印整数的操作,%d 和 %i 没有区别。它们都可以用来输出十进制整数。 #include <stdio.h>int main() {int number = 123;printf("Using %%d: %d

【论文分享】MyTEE: Own the Trusted Execution Environment on Embedded Devices 23‘NDSS

目录 AbstractINTRODUCTIONBACKGROUNDARMv8 ArchitectureSecurity statesTrustZone extensionsVirtualization Communication with Peripherals MOTIVATIONATTACK MODEL AND ASSUMPTIONSYSTEM DESIGNOverviewExecu

7/23训练日记

今天的比赛过的题都是暴力过的,三个题过了之后就想b题尽量的在想把区间问题转化为端点问题不然的话总是被数据卡超时,比赛过后查题解的时候看到一个140多行的代码和一个20多行的代码感慨思路的重要。今天看的有递推枚举。枚举也需要有技巧的枚举,就好比,那个费解的开关要看出定住第一行第一行的变法定了就通过下面一行行的变来使上一行达到开关全开的状态(而且第一行顺序确定下面行的按开关顺序也就确定了所以只要枚举第

23合并 K 个升序链表

我嘞个二维数组 有点小夸张了哈 这个题目我最开始看就回想两个有序链表的排序,但是如果这样排,那要排k次,每次排序还有相应时间复杂度,工程量之大,相当恐怖 那么这个时候我们就想起来去用堆 最小堆,非子叶节点小于子叶节点,可以导致根节点是最小的,那么我们只需要把所有数据全部插入最小堆,然后一一删去根节点即可 好几种解法放在下面 第一种用堆 class Solution {public Lis