zoukankan      html  css  js  c++  java
  • Plus One

    题目:Given a non-negative number represented as an array of digits, plus one to the number.

    string1=“1213”,加1之后string=“1214”.

    思路:

        转化+细节实现。

    并不需要将字符串转化为数字本身,再将数字本身转化为字符串,这样会造成时间不够。

    本题目的一个解法就是从最高位开始,设立一个flag标志,如果需要加1,flag=1.最后如果flag=1,再在字符串前面插入1.


    代码:

    class Solution {
    public:
        vector<int> plusOne(vector<int>& digits) {
            vector<int> result;
            int flag=0;
            
            if(digits[digits.size()-1]+1+flag>=10){
                    
                    result.push_back((digits[digits.size()-1]+1+flag)%10);flag=1;
                }else{
                    result.push_back(digits[digits.size()-1]+1+flag);
                    flag=0;
                }
            
            for(int i=digits.size()-2;i>=0;i--){
                if(digits[i]+flag>=10){
                    
                    result.push_back((digits[i]+flag)%10);flag=1;
                }else{
                    result.push_back(digits[i]+flag);
                    flag=0;
                }
            }
            if(flag){
                result.push_back(flag);
            }
            reverse(result.begin(),result.end());
            return result;
        }
    };


  • 相关阅读:
    HDU 1496 Equations
    HDU 1060 Leftmost Digit
    HDU 1391 Number Steps
    HDU 1212 Big Number
    HDU 1491 Octorber 21st
    HDU 1339 A Simple Task
    HDU 2710 Max Factor
    HDU 1176 免费馅饼
    FORTH基本堆栈操作
    FORTH 安装使用
  • 原文地址:https://www.cnblogs.com/jsrgfjz/p/8519914.html
Copyright © 2011-2022 走看看