基本使用
需要引入
#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;
}
};