欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 力扣2905. 找出满足差值条件的下标II

力扣2905. 找出满足差值条件的下标II

2025/4/19 9:06:20 来源:https://blog.csdn.net/Pisasama/article/details/142795917  浏览:    关键词:力扣2905. 找出满足差值条件的下标II

力扣2905. 找出满足差值条件的下标II

题目解析及思路

题目要求找到一对元素满足

  • abs(i - j) >= indexDifference
  • abs(nums[i] - nums[j]) >= valueDifference

从index开始枚举j,取i = j - index,维护<=i的区间中的最大值和最小值的下标,此时下标差距一定满足条件

下面两种情况成立时说明找到合法的一对下标了

  • nums[max_idx] - nums[j] >= valueDifference
  • nums[j] - nums[min_idx] >= valueDifference

代码

class Solution {
public:vector<int> findIndices(vector<int>& nums, int indexDifference, int valueDifference) {int max_idx = 0,min_idx = 0;for(int j=indexDifference;j<nums.size();j++){int i = j - indexDifference;//i对应的元素为最大值if(nums[i] > nums[max_idx])max_idx = i;//i对应的元素为最小值else if(nums[i] < nums[min_idx])min_idx = i;if(nums[max_idx] - nums[j] >= valueDifference)return {max_idx,j};if(nums[j] - nums[min_idx] >= valueDifference)return {min_idx,j};}return {-1,-1};}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词