基本使用
需要引入
#include <algorithm>
max_element()返回的是vector的迭代器,可以使用auto或者vector<int>::iterator(假设vector中的元素是int类型)接收。
max_element()的输入参数为需要求最大值的区间的起始迭代器和终止迭代器。
vector<int>::iterator max_ptr = max_element(nums.begin(), nums.end());
auto max_ptr = max_element(nums.begin(), nums.end());
求最大值的索引
int idx = max_ptr - nums.begin();
求最大值
int max_num = *max_ptr;
示例
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
class Solution {
public:
int dominantIndex(vector<int>& nums) {
int n = nums.size();
// vector<int>::iterator max_ptr = max_element(nums.begin(), nums.end());
auto max_ptr = max_element(nums.begin(), nums.end());
int idx = max_ptr - nums.begin();
int max_num = *max_ptr;
for (int i = 0; i < n; ++i){
if (nums[i] != 0 && i != idx && max_num / nums[i] < 2) return -1;
}
return idx;
}
};
利用C++max_element函数在LeetCode上的应用:寻找占优索引
本文介绍了如何在C++中使用`max_element`函数找到向量中最大值的迭代器,进而计算最大值的索引,并在LeetCode题目中实现`dominantIndex`函数,检查是否存在一个元素使其两倍于其他元素。
1568

被折叠的 条评论
为什么被折叠?



