LC66题————数组加一

题目类型:简单

Posted by 谢玄xx on February 26, 2022

解题思路:

分三种情况即可解决问题: 数组中不含9 || 数组中含好几个9 || 数组中全为9

  • 数组中不含9 ———— 直接将末尾元素+1即可;
  • 数组中含好几个9 ———— 从后往前找,先找到最后一个不为0的数,将这个数+1,然后将后面的9全部置0;
  • 数组中全为9 ———— 开辟一个新的数组空间,大小为size()+1,然后令第一个元素为0即可。

代码如下:

```CPP #include #include using namespace std;

vector plusOne(vector &digits) { int n = digits.size(); for(int i = n - 1; i > 0; i--) { if(digits[i] != 9) //找到最后一个不为0的数组元素 { digits[i]++; //这个元素值+1 for(int j = i + 1; j < n; j++) { digits[j] = 0; //把后面的元素都置0 } return digits; } } vector ans(n + 1); ans[0] = 1; return ans; } int main() { vector nums1; nums1.push_back(5); nums1.push_back(3); nums1.push_back(2); nums1.push_back(6); plusOne(nums1);

cout << "hello..." << endl;
return 0;   }