LeetCode 1537. 最大得分(切片取出局部最大值)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

你有两个 有序 且数组内元素互不相同的数组 nums1 和 nums2 。

一条 合法路径 定义如下:

  • 选择数组 nums1 或者 nums2 开始遍历(从下标 0 处开始)。
  • 从左到右遍历当前数组。
  • 如果你遇到了 nums1 和 nums2 中都存在的值,那么你可以切换路径到另一个数组对应数字处继续遍历(但在合法路径中重复数字只会被统计一次)。

得分定义为合法路径中不同数字的和

请你返回所有可能合法路径中的最大得分

由于答案可能很大,请你将它对 10^9 + 7 取余后返回。

示例 1:
在这里插入图片描述

输入:nums1 = [2,4,5,8,10], nums2 = [4,6,8,9]
输出:30
解释:合法路径包括:
[2,4,5,8,10], [2,4,5,8,9], [2,4,6,8,9], 
[2,4,6,8,10],(从 nums1 开始遍历)
[4,6,8,9], [4,5,8,10], [4,5,8,9], 
[4,6,8,10]  (从 nums2 开始遍历)
最大得分为上图中的绿色路径 [2,4,6,8,10] 。示例 2:
输入:nums1 = [1,3,5,7,9], nums2 = [3,5,100]
输出:109
解释:最大得分由路径 [1,3,5,100] 得到。示例 3:
输入:nums1 = [1,2,3,4,5], nums2 = [6,7,8,9,10]
输出:40
解释:nums1 和 nums2 之间无相同数字。
最大得分由路径 [6,7,8,9,10] 得到。示例 4:
输入:nums1 = [1,4,5,8,9,11,19], nums2 = [2,3,4,11,12]
输出:61提示:
1 <= nums1.length <= 10^5
1 <= nums2.length <= 10^5
1 <= nums1[i], nums2[i] <= 10^7
nums1 和 nums2 都是严格递增的数组。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/get-the-maximum-score
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 把上下相同的地方作为断点,取前面较大的片段
class Solution {
public:int maxSum(vector<int>& nums1, vector<int>& nums2) {long long ans = 0, up_sum = 0, down_sum = 0;int i = 0, j = 0, n1 = nums1.size(), n2 = nums2.size();while(i < n1 && j < n2){if(nums1[i] < nums2[j]){up_sum += nums1[i++];}else if(nums1[i] > nums2[j]){down_sum += nums2[j++];}else if(nums1[i] == nums2[j]){up_sum += nums1[i++];down_sum += nums2[j++];//相同的点,取前面较大的片段之和ans = (ans+max(up_sum, down_sum))%1000000007;up_sum = down_sum = 0;//片段和置0}}while(i < n1)//剩余的没遍历完的up_sum += nums1[i++];while(j < n2)down_sum += nums2[j++];ans = (ans+max(up_sum, down_sum))%1000000007;return ans;}
};

236 ms 55.7 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为固件解包工具linux,华为解包工具官方下载

华为官方APP固件解包工具包括&#xff1a;华为官方固件update.app专用解包工具和 system.img解包工具&#xff0c;可解包华为官方SD卡刷机包UPDATA.APP&#xff0c;可将APP固件解包成IMG镜像分区文件&#xff0c;继续解包可对刷机包进行定制。官方ROM解包教程&#xff0c;现写一…

python输出以及常用格式符介绍(含笔记)

1 输出 1.1 普通输出 # 打印提示 print(hello world) print(给我的卡---印度语&#xff0c;你好的意思) 1.2 格式化输出 age 10 print("我今年%d岁"%age) age 1 print("我今年%d岁"%age) age 1 print("我今年%d岁"%age) 在程序中…

C++ _countf

Windows宏&#xff0c;用来计算一个静态分配的数组中的元素的个数&#xff0c;而sizeof是用来计算字节数。 _countof(array); 参数 array数组的名字 返回值 array数组中的元素个数 备注 确保array是一个静态分配的数组&#xff0c;而不是一个指针。如果array是一个指针&#xf…

LeetCode MySQL 1384. 按年度列出销售总额

文章目录1. 题目2. 解题1. 题目 Product 表&#xff1a; ------------------------ | Column Name | Type | ------------------------ | product_id | int | | product_name | varchar | ------------------------ product_id 是这张表的主键。 product_name 是…

linux历史性能数据,Linux平台下如何看OS历史的性能数据

同事电话询问Linux下一个集群内2个主机前后2天相继无响应&#xff0c;表现状况为ping都没响应。因为没任何监控或其他性能数据&#xff0c;故需要获取历史OS性能数据。我们知道rhel5,6下默认可以通过sar命令查看OS历史信息&#xff0c;故执行sar即可看到当天的数据。[rootora11…

python输入以及比较逻辑运算符介绍(含笔记)

1. 输入 咱们在银行ATM机器前取钱时&#xff0c;肯定需要输入密码&#xff0c;对不&#xff1f;那么怎样才能让程序知道咱们刚刚输入的是什么呢&#xff1f;&#xff1f;大家应该知道了&#xff0c;如果要完成ATM机取钱这件事情&#xff0c;需要先从键盘中输入一个数据&#xf…

C语言 二维数组做函数参数的几种情况

&#xff08;1&#xff09; 实参为数组元素地址&#xff0c;虚参为元素类型指针 &#xff08;a&#xff09; 调用函数&#xff1a;fun(*a,3*4); //*a也可为a[0] or &a[0][0] 函数&#xff1a; fun(int *p,int n) //*p也可为p[]{ p[i] or *(pi) } &#xff…

LeetCode MySQL 1336. 每次访问的交易次数

文章目录1. 题目2. 解题1. 题目 表: Visits ------------------------ | Column Name | Type | ------------------------ | user_id | int | | visit_date | date | ------------------------ (user_id, visit_date) 是该表的主键 该表的每行表示 user…

python中if命令简单介绍及注意事项(含笔记)

if语句是用来进行判断的&#xff0c;其使用格式如下&#xff1a;

putty连接linux上传python,通过PuTTY用于SSH的Python脚本

我可以在命令行中给出以下命令C:\>cd "C:\Program Files\ExtraPuTTY\Bin"C:\Program Files\ExtraPuTTY\Bin>putty.exe -ssh root172.20.0.102 22这可以帮助我通过PuTTY打开SSH会话.而我无法在Python脚本中复制它们.cwd"C://Program Files//ExtraPuTTY//Bi…

jQuery源码分析系列:事件模块概述

jQuery的事件模块是较复杂的&#xff0c;前面仅仅提到了对事件对象的包装。即统一了一些兼容性的问题。这篇会综述下jQuery的整个事件模块。后面会详细分析jQuery.event.add/jQuery.event.remove/jQuery.event.trigger。 虽然事件模块代码很难读&#xff0c;但其提供的API接口还…

LeetCode MySQL 1159. 市场分析 II(rank+over)

文章目录1. 题目2. 解题1. 题目 表: Users ------------------------- | Column Name | Type | ------------------------- | user_id | int | | join_date | date | | favorite_brand | varchar | ------------------------- user_id 是该表的主键…

linux基础 linhaifeng,Linux 基础命令(一)

Linux 基础&#xff1a;Linux 比 Windows 更稳定做服务器&#xff0c;开发出来的软件需要在服务器上运行# 测试硬盘速度dd if/dev/zero ofsdb5/test bs10G count1# 写一个 10G 的文件写文件 input fileout file block size1. 操作系统内核与系统调用1.1 操作系统操作系统是用来…

python中elif和while简单介绍及注意事项(含笔记)

一、elif 想一想&#xff1a; if能完成当xxx时做事情&#xff1b;if-else能完成当xxx时做事情1&#xff0c;否则做事情2; 如果有这样一种情况&#xff1a;当xxx1时做事情1&#xff0c;当xxx2时做事情2&#xff0c;当xxx3时做事情3&#xff0c;那该怎么实现呢&#xff1f; 答…

oracle 从别的数据库获取数据 ,访问其他数据库

在某个oracle数据库&#xff0c;获取其他oracle数据库中的数据&#xff0c;需要建立database link&#xff0c;在使用语句获取数据 假设前置机实例名prod,你要查询的用户scott密码tiger在本机:create database link xxx connect to scott identified by tiger usingprod;成功连…

linux怎么安装32电脑上,linux – 如何在Ubuntu上安装mingw32?

仔细查看实际可用的内容&#xff1a;eddmax:~$apt-cache search mingw-libassuan-mingw-w64-dev - IPC library for the GnuPG components -- Windows portlibgcrypt-mingw-w64-dev - LGPL Crypto library - Windows developmentlibgpg-error-mingw-w64-dev - library of error…

LeetCode MySQL 262. 行程和用户

文章目录1. 题目2. 解题1. 题目 Trips 表中存所有出租车的行程信息。 每段行程有唯一键 Id&#xff0c;Client_Id 和 Driver_Id 是 Users 表中 Users_Id 的外键。 Status 是枚举类型&#xff0c;枚举成员为 (‘completed’, ‘cancelled_by_driver’, ‘cancelled_by_client’…

花了一年时间开发出来的基于DXF文件的加工路径自动生成软件

随着科技水平的进步&#xff0c;计算机辅助制造技术CAD/CAM在机械加工中起着越来越重要得作用,传统的手动编程正在被自动编程所取代&#xff0c;目前PRO/E,UG,MasterCAM等商业软件可以根据设计的图形直接生成数控加工代码。然而这些软件相对来说功能复杂&#xff0c;不易掌握&a…