元素和最小的山形三元组.18103310
Problem: 2908. 元素和最小的山形三元组 I
思路
先记录每个元素左边的最小数与右边的最小数。统计所有符合条件的数的最小值
复杂度
时间复杂度:
$O(n)$
空间复杂度:
$O(n)$
Code
class Solution {
public:
int minimumSum(vector<int>& nums) {
int n=nums.size();
vector<int>left(nums.size());
vector<int>right(nums.size());
left[0]=nums[0];
right[n-1]=nums[n-1];
for(int i=1;i<n-1;i++){
left[i]=min(nums[i-1],left[i-1]);
}
for(int i=n-2;i>=1;i--){
right[i]=min(nums[i+1],right[i+1]);
}
int res=INT_MAX;
for(int i=1;i<n-1;i++){
if(nums[i]>left[i]&&nums[i]>right[i]){
res=min(res,nums[i]+left[i]+right[i]);
}
}
if(res==INT_MAX) return -1;
return res;
}
};

浙公网安备 33010602011771号