66.加一
题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

解题思路:
要分成3种情况进行讨论:
1.当input的末位数小于9的情况,直接在末尾位置加一即可;
2.涉及一位进位的情况比如[1,9]+[1],先让末位为0,次高位要进一;
3.当涉及多位进位的情况,比如[9,9]+[1],数组的大小将会扩大,最高位还要再进一位.
class Solution { public: vector<int> plusOne(vector<int>& digits) { int len =
digits.size(); //从数组末位开始循环 for(int i = len - 1; i >= 0; --i){ //若某位数<9,在该位上+1即可
if(digits[i] < 9){ ++digits[i]; return digits; } if(i == 0){
//循环到最高位时,最高位赋值1,并且在该数末位添加0(针对类似[9,9,9]这样的数组) digits[i] = 1;
//push_back的用法就是在数组中插入元素 digits.push_back(0); } else
//还没循环到最高位且digits[i]=9时,该位赋值为0 digits[i] = 0; } return digits; } };

技术
©2019-2020 Toolsou All rights reserved,
Unity-Demo实例之 ✨ 实现UI-背包装备拖拽功能计算机网络---计算机网络基本概念(协议、体系)某东14薪变16薪,是诚意还是套路?让人意想不到的Python之樱花树(turtle库的华丽样式)java四大函数式接口(重点,简单)06【若依框架解读】数据范围过滤--太牛了Unity3D之UGUI基础--画布的三种模式os模块的简单使用html写樱花树,写樱花树的作文