【LeetCode】按位加法(字符加法类)


0x00模板(可熟悉vector用法)

class Solution {
public:
    vector plusOne(vector& digits) {
        int len = digits.size();
        int i=1;
        while((len-i>=0) && (digits.at(len-i) == 9))
        {
            digits.at(len-i)=0;
            i=i+1;
        }
        if(len-i<0)
        {
            digits.insert(digits.begin(),1);
        }
        else
        {
            digits.at(len-i)+=1;
        }
        return digits;
    }
};
//他人解法
// class Solution {
// public:
//     vector plusOne(vector& digits) {
//         for(int i =  digits.size()-1;i>=0;--i)
//         {
//             if(digits[i] + 1 == 10)
//             {
//                 digits[i] = 0;
//                 if(i == 0)digits.insert(digits.begin(),1);
//             }
//             else
//             {
//                 digits[i]++;
//                 break;
//             } 
//         }
//         return digits;
//     }
// };

0x01注意事项

-注意在数字超过int最大值的时候,要采用按位加法进行计算,本模板只是简单的加一

0x02相关题目

-66.加一


end~


越努力,越幸运.jpg

你可能感兴趣的:(【LeetCode】按位加法(字符加法类))