gpt4 book ai didi

c++ - 我得到 "void value not ignored as it ought to be"我该怎么办?

转载 作者:行者123 更新时间:2023-11-28 01:44:08 24 4
gpt4 key购买 nike

问题链接:

https://www.interviewbit.com/problems/minimize-the-absolute-difference/

It has an ide so you can solve it on the website itself.

问题:

给定三个大小不一定相同的排序数组 A、B 和 C。

计算三元组a、b、c的最大数与最小数的最小绝对差值,使得a、b、c分别属于数组A、B、C。即最小化 |最大(a,b,c) - 最小(a,b,c) |.

示例:

输入:

A : [ 1, 4, 5, 8, 10 ]
B : [ 6, 9, 15 ]
C : [ 2, 3, 6, 6 ]

输出:

1

解释:我们得到 a=5、b=6、c=6 的最小差异为 |最大值(a,b,c) - 最小值(a,b,c) | = |6-5| = 1.

我的解决方案:

int Solution::solve(vector<int> &A, vector<int> &B, vector<int> &C) {

int a,b,c,d,e,f,g,i,j;

a=A.pop_back();
b=B.pop_back();
c=C.pop_back();

while(A.size()>0 && B.size()>0 && C.size()>0){


if(a>=b && b>=c){
d = abs(a-c);
if(d<f){
f=d;
}
a=A.pop_back();
}

if(a>=b && c>=b){
d = abs(a-b);
if(d<f){
f=d;
}
a=A.pop_back();
}

if(b>=a && a>=c){
d = abs(b-c);
if(d<f){
f=d;
}
b=B.pop_back();
}

if(b>=a && c>=a){
d = abs(b-a);
if(d<f){
f=d;
}
b=B.pop_back();
}

if(c>=a && a>=b){
d = abs(c-b);
if(d<f){
f=d;
}
c=C.pop_back();
}

if(c>=b && b>=a){
d = abs(c-a);
if(d<f){
f=d;
}
c=C.pop_back();
}


}

cout<<f;

}

最佳答案

pop_back() 函数不返回弹出的元素。你必须这样做:

a = A.back();
A.pop_back();

...等等。

参见 Why doesn't std::queue::pop return value.?用于解释 API 设计。

关于c++ - 我得到 "void value not ignored as it ought to be"我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45902835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com