zoukankan      html  css  js  c++  java
  • 力扣算法题—066加一

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

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

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

    示例 1:

    输入: [1,2,3]
    输出: [1,2,4]
    解释: 输入数组表示数字 123。
    

    示例 2:

    输入: [4,3,2,1]
    输出: [4,3,2,2]
    解释: 输入数组表示数字 4321。

     1 #include "_000库函数.h"
     2 
     3 //不要将其取出来,直接在最后一位进行判断
     4 class Solution {
     5 public:
     6     vector<int> plusOne(vector<int>& digits) {
     7         int a = 1;//保留余数
     8         int p = digits.size() - 1;//个位数的位置
     9         while (p >= 0 && a) {
    10             a = digits[p] + a;
    11             digits[p] = a % 10;
    12             a = a / 10;//是否有进位
    13             --p;
    14         }
    15         if (a) //仍有进位
    16             digits.insert(digits.begin(), a);
    17         return digits;
    18     }
    19 };
    20 
    21 //我们将carry初始化为1,然后相当于digits加了一个0,
    22 class Solution {
    23 public:
    24     vector<int> plusOne(vector<int>& digits) {
    25         if (digits.empty()) return digits;
    26         int carry = 1, n = digits.size();
    27         for (int i = n - 1; i >= 0; --i) {
    28             if (carry == 0) return digits;
    29             int sum = digits[i] + carry;
    30             digits[i] = sum % 10;
    31             carry = sum / 10;
    32         }
    33         if (carry == 1) digits.insert(digits.begin(), 1);
    34         return digits;
    35     }
    36 };
    37 
    38 void T066() {
    39     Solution s;
    40     vector<int>v;
    41     v = { 9,9,9 };
    42     v = s.plusOne(v);
    43     for (auto i : v)
    44         cout << i;
    45     cout << endl;
    46     v = { 1,2,3 };
    47     v = s.plusOne(v);
    48     for (auto i : v)
    49         cout << i;
    50     cout << endl;
    51     v = { 1,9,9 };
    52     v = s.plusOne(v);
    53     for (auto i : v)
    54         cout << i;
    55     cout << endl;
    56 
    57 }
  • 相关阅读:
    设计模式4---策略模式
    设计模式3---抽象工厂模式
    209. Minimum Size Subarray Sum(双指针)
    174. Dungeon Game(动态规划)
    二分查找
    74. Search a 2D Matrix(二分查找,剑指offer 1)
    81. Search in Rotated Sorted Array II
    33. Search in Rotated Sorted Array(二分查找)
    34. Search for a Range (二分查找)
    35. Search Insert Position(二分查找)
  • 原文地址:https://www.cnblogs.com/zzw1024/p/10684736.html
Copyright © 2011-2022 走看看