算法日记-LeetCode-1911.最大子序列交替和
原题链接:1911. 最大子序列交替和 - 力扣(LeetCode)
题目大意
给定一个数组,定义奇数位取正值,偶数位取负值,得到的和为交替和,求出在该数组,所有子序列中,最大的交替和。
子序列:不改变相对顺序删除数组中0~n-1个值,n为数组长度。
输入:nums = [4,2,5,3] |
解题思路
暴力解
按最粗暴的方式,求出数组的所有子序列,再得到每个子序列的交替和,然后最大的值即为解。
求子序列和的方式,
子序列就是从数组中删除0个或者多个值,且其相对顺序不变
比如:
[1, 2, 3] 的子序列
[1, 2, 3]
[1, 2]
[1, 3]
[2, 3]
[1]
[2]
[3]
求子序列的思路
遍历数组,对数组中的每一个值,可以选择保留或者删除,最后得到的所有可能的结果就是所有的子序列。
编写递归函数求解,结束条件为,遍历结束
/** |
动态规划
代码
暴力解——超出内存限制
class Solution { |
官方题解
class Solution { |
理解:
- 本文作者: Naskete
- 本文链接: https://Naskete.github.io/2023/07/11/algorithm/算法日记-LeetCode-1911.最大子序列交替和/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!