C++ vector数组求最大值——max_element()

本文介绍了如何在C++中使用`max_element`函数找到向量中最大值的迭代器,进而计算最大值的索引,并在LeetCode题目中实现`dominantIndex`函数,检查是否存在一个元素使其两倍于其他元素。
摘要由CSDN通过智能技术生成

基本使用

需要引入

#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;
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值