c++ - 寻找最大的整数 C++
问题描述
给定一个包含 N 个整数的数组 A,返回最大的整数 K>0,使得数组 A 中同时存在值 K 和 -K(相反的数字)。如果没有这样的整数,则函数应返回 0。
例子:
给定 A = [4,-4,-4,2] 函数应该返回 4
给定 A = [ -2,0,0,-3],函数应该返回 0,因为没有这样的 K>0
给定 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;
}
解决方案
if (A[first] = -A[last])
错了,你可能想要:
if (A[first] == -A[last])
(第一个是赋值,第二个是比较)
推荐阅读
- python - 带有 Postgres upserts 的 SQLAlchemy before_update 事件
- core-data - 如何进行核心数据迁移?
- javascript - JavaScript 使用回调将数据发送回同一窗口
- amazon-web-services - ECS 中的内网通信问题与私有子网中的 Route53
- asp.net-mvc - 如何将模型转换为实体?
- microsoft-translator - Microsoft 自定义翻译门户提供 WorkspaceID 错误
- javascript - 在 reactJS 中执行“或语句”作为回报
- c# - 如何使用 Visual Studio 安装程序项目将数据库文件复制到 Documents 目录?
- r - 向量被存储为数据框而不是向量
- wpf - wpf Grid中的分页