国外图片设计网站有哪些,网站设计建设维护与更新,推广型网站建设电话,营销型电子商务网站特点文章目录 1. 题目来源2. 题目解析 1. 题目来源
链接#xff1a;2789. 合并后数组中的最大元素
2. 题目解析
挺有意思的一道题目。
这里的两数字合并#xff0c;实际上就是两个数字之和变成了新的数字#xff0c;再用这个数字和将这两个数字在数组中进行替代。
将这两个… 文章目录 1. 题目来源2. 题目解析 1. 题目来源
链接2789. 合并后数组中的最大元素
2. 题目解析
挺有意思的一道题目。
这里的两数字合并实际上就是两个数字之和变成了新的数字再用这个数字和将这两个数字在数组中进行替代。
将这两个数字记为 A1A2要求 A1 A2那么合并的时候就最好不要从前向后合并了就要考虑逆序的从后向前合并保证 A2 是数字和累加起来的尽可能的大过 A1将 A1 能够顺利合并保证和最大。
当逆序合并不了的时候即A1 A2 的时候这个时候数组中的最大和已经不是 A2 这块了也无法做合并了。我们就将当前的最大和赋值给 A1然后让 A1 继续去做逆序合并即可。
最终合并到头部逆序遍历完数组则可得到数组中的最大值。
可能会爆 long long记得开。 时间复杂度 O ( n ) O(n) O(n)空间复杂度 O ( 1 ) O(1) O(1) class Solution {
public:long long maxArrayValue(vectorint nums) {long long sum nums.back();for (int i nums.size() - 2; i 0; i--) {sum nums[i] sum ? nums[i] sum : nums[i];}return sum;}
};