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) 在程序中…

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

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

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

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

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;

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 是该表的主键…

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; 答…

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…

LeetCode 1136. 平行课程(拓扑排序)

文章目录1. 题目2. 解题1. 题目 已知有 N 门课程&#xff0c;它们以 1 到 N 进行编号。 给你一份课程关系表 relations[i] [X, Y]&#xff0c;用以表示课程 X 和课程 Y 之间的先修关系&#xff1a;课程 X 必须在课程 Y 之前修完。 假设在一个学期里&#xff0c;你可以学习任…

【Android】Uri和Url和URN

最早在Android方面接触这两个概念&#xff0c;是学习ContentProvider的时候&#xff0c;当时花了很多时间&#xff0c;始终不能很好的理解他们的区别&#xff0c;顺带着ContentProvider的用法也无法理解&#xff0c;最近通过实现网页链接和Android-APP的无缝跳转问题&#xff0…

LeetCode 1259. 不相交的握手(DP)

文章目录1. 题目2. 解题1. 题目 偶数 个人站成一个圆&#xff0c;总人数为 num_people 。 每个人与除自己外的一个人握手&#xff0c;所以总共会有 num_people / 2 次握手。 将握手的人之间连线&#xff0c;请你返回连线不会相交的握手方案数。 由于结果可能会很大&#xf…

外星人装深度linux,17xR4深度拆机教程、加装MSATA固态硬盘及评测

本帖最后由 wellsyue 于 2012-6-20 20:45 编辑看到其他板块在三代IVY推出后&#xff0c;陆续发布了很多加装MSATA的帖子&#xff0c;发现外星人板块还没有17R4加装MSATA的帖子&#xff0c;在此&#xff0c;发布M17x R4加装MSATA教程一贴&#xff0c;既然是教程&#xff0c;就应…

LeetCode 248. 中心对称数 III(DFS/BFS)

文章目录1. 题目2. 解题2.1 DFS2.2 BFS1. 题目 中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字&#xff08;或者上下颠倒地看&#xff09;。 写一个函数来计算范围在 [low, high] 之间中心对称数的个数。 示例: 输入: low "50", high "10…