正确的情况是将第17行更改为" if(one> 0)", 但是当我使用" if(one = 1)"时,我不明白为什么会出错。 当输入为0时,一个为0,输出如何变为[1,1]。
class Solution {
public:
/**
* @param digits a number represented as an array of digits
* @return the result
*/
vector<int> plusOne(vector<int>& digits) {
// Write your code here
vector<int> res(digits.size(), 0);
int sum = 0;
int one = 1;
for (int i= digits.size()-1; i >= 0 ; i--) {
sum = one + digits[i];
one = sum / 10;
res[i] = sum % 10;
}
***if (one = 1) {***
res.insert(res.begin(), one);
}
return res;
}
};
答案 0 :(得分:4)
=
是赋值运算符,它始终返回指定的值。
因此,对于非零值的赋值,条件将始终为真,在本例中为1
。
如果您正在寻找相等性检查,请使用==
运算符。
答案 1 :(得分:1)
"="
是c和c ++中的赋值运算符。您需要比较运算符才能在代码中进行比较,因此您需要使用"=="
。
答案 2 :(得分:0)
if (one == 1) {
不
if (one = 1) {
我认为if (one > 0
在任何情况下都更具风格。