做怎么样的自己的网站,建设网站需要申请,网站开发要什么,wordpress博客实例1. 题意
给你一个整数数组 nums 和一个整数 m。
返回任意大小为 m 的 子序列 中首尾元素乘积的最大值。
子序列 是可以通过删除原数组中的一些元素#xff08;或不删除任何元素#xff09;#xff0c;且不改变剩余元素顺序而得到的数组。
2. 题解
由于序列的长度为 m m…1. 题意
给你一个整数数组 nums 和一个整数 m。
返回任意大小为 m 的 子序列 中首尾元素乘积的最大值。
子序列 是可以通过删除原数组中的一些元素或不删除任何元素且不改变剩余元素顺序而得到的数组。
2. 题解
由于序列的长度为 m m m, 我们可以枚举序列最后一个元素的位置而对于序列的首元素的位置从左往右不断获得最大值和最小值。这次获得的首元素位置一定可以用到下一次。
枚举序列右端点维护序列左端点
class Solution {
public:long long maximumProduct(vectorint nums, int m) {int mx nums[0];int mn nums[0];int sz nums.size();long long ans 0;for (int i 0;i sz - m; i) {mx std::max( mx, nums[i]);mn std::min( mn, nums[i]);if ( i 0) {ans (long long)nums[0] * nums[m - 1];}else {ans std::max( (long long)mx * nums[i m - 1], ans);ans std::max( (long long)mn * nums[i m - 1], ans);}}return ans;}
};