zoukankan      html  css  js  c++  java
  • LeedCode刷题:66:加一

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

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

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

    思路:从最后一位看,若不为9,则加1直接返回

    若为9,则本位设为0,继续遍历前一个数;

    若跳出for循环,则说明数组中全设为了0;

    则新建长度+1的新数组,并将第一个数设为1,最终返回这个新数组即可

     1 class Solution {
     2     public int[] plusOne(int[] digits) {
     3        for(int i=digits.length-1;i>=0;i--){
     4             if(digits[i]!=9){
     5                 digits[i]++;
     6                 return digits;
     7             }
     8             digits[i]=0;
     9         }
    10         int tmp[]=new int[digits.length+1];
    11         tmp[0]=1;
    12         return tmp;
    13     }
    14 }

     C++代码:

     1 class Solution {
     2 public:
     3     vector<int> plusOne(vector<int>& digits) {
     4         digits[digits.size()-1]++;
     5         for(int i=digits.size()-1;i>=0;i--){
     6             if(digits[i]==10){
     7                 digits[i]=0;
     8                 if(i==0){
     9                     digits.insert(digits.begin(),1);
    10                 }
    11                 else{
    12                     digits[i-1]++;
    13                 }
    14             }else
    15                 return digits;
    16         }
    17         return digits;
    18     }
    19 };
  • 相关阅读:
    pro asp.net mvc5 7
    pro asp.net mvc5
    第九章 观察者模式 OBSERVER
    第八章 单件模式 singleton
    第二部分 职责型模式responsibility
    设计模式5 合成模式 COMPOSITE
    linux中xargs用法
    linux中du的用法
    linux中find的用法
    linux中grep注意
  • 原文地址:https://www.cnblogs.com/nilbook/p/13515390.html
Copyright © 2011-2022 走看看