首页 > 解决方案 > 寻找最大的整数 C++

问题描述

给定一个包含 N 个整数的数组 A,返回最大的整数 K>0,使得数组 A 中同时存在值 K 和 -K(相反的数字)。如果没有这样的整数,则函数应返回 0。

例子:

  1. 给定 A = [4,-4,-4,2] 函数应该返回 4

  2. 给定 A = [ -2,0,0,-3],函数应该返回 0,因为没有这样的 K>0

  3. 给定 A = [-4],函数应该返回 0

这是我已经实现的一些代码,但仍在尝试找出获取数组中最大值的确切实现。

#include <algorithm>

int solution(vector<int>& A) {
    sort(A.begin(), A.end());
    int first = 0, last = A.size() - 1;

    while (first < last) {
        if (A[first] = -A[last])
            return A[last];

        if (A[first] > -A[last])
            last -= 1;
        else
            first += 1;
    }

    return 0;
}

标签: c++arrays

解决方案


if (A[first] = -A[last])

错了,你可能想要:

if (A[first] == -A[last])

(第一个是赋值,第二个是比较)


推荐阅读