zoukankan      html  css  js  c++  java
  • [leetcode.com]算法题目

    Given a number represented as an array of digits, plus one to the number.

     1 class Solution {
     2 public:
     3     vector<int> plusOne(vector<int> &digits) {
     4         // Start typing your C/C++ solution below
     5         // DO NOT write int main() function
     6         bool allNine = true;    
     7         int size = digits.size();
     8         
     9         for(int i = 0; i< size; i++){
    10             if(digits[i] != 9){
    11                 allNine = false;
    12                 break;
    13             }
    14         }
    15         
    16         if(allNine){
    17             vector<int> result(1+size, 0);
    18             result[0] = 1;
    19             return result;
    20         }
    21         
    22         vector<int> result(size);
    23         
    24         for(int i=0;i<size;i++){
    25             result[i]=digits[i];
    26         }
    27         
    28         result[size-1] += 1;
    29         int k = size-1;
    30         
    31         while(10==result[k]){
    32             result[k] = 0;
    33             k--;
    34             result[k]++;
    35         }
    36         
    37         return result;
    38     }
    39 };
    我的答案

    思路:可能出现的意外情况只有数字全是9的时候,这种情况单独拿出来讨论一下,剩下的情况都不可能全为9了。

  • 相关阅读:
    797. 所有可能的路径
    1286. 字母组合迭代器
    216. 组合总和 III
    77. 组合
    784. 字母大小写全排列
    90. 子集 II
    78. 子集
    47. 全排列 II
    46. 全排列
    40. 组合总和 II
  • 原文地址:https://www.cnblogs.com/xuning/p/3315809.html
Copyright © 2011-2022 走看看