博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
66. Plus One
阅读量:5047 次
发布时间:2019-06-12

本文共 1822 字,大约阅读时间需要 6 分钟。

1. 问题描述

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

The digits are stored such that the most significant digit is at the head of the list.

Subscribe to see which companies asked this question

Tags: Array Math

Similar Problems: (M) Multiply Strings (E) Add Binary

2. 解答思路

3. 代码

1 #include 
2 using namespace std; 3 class Solution { 4 public: 5 vector
plusOne_method_1(vector
& digits) { 6 if (digits.empty()) 7 { 8 digits.push_back(1); 9 return digits;10 }11 return puls(digits, digits.size()-1, 1);12 }13 vector
plusOne_method_2(vector
& digits) {14 if (digits.empty())15 {16 digits.push_back(1);17 return digits;18 }19 int nTakeOver = 1;20 int i;21 for (i=digits.size()-1; i>=0; i--)22 {23 int sum = digits[i] + nTakeOver;24 digits[i] = sum%10;25 nTakeOver = sum/10;26 if (0 == nTakeOver)27 {28 return digits;29 }30 }31 if (1 == nTakeOver)32 {33 digits.insert(digits.begin(), 1);34 }35 return digits;36 }37 private:38 vector
puls(vector
& digits, int idx, int nTakeOver = 0)39 {40 int sum = digits[idx] + nTakeOver;41 digits[idx] = sum%10;42 nTakeOver = sum/10;43 if (0 == nTakeOver)44 {45 return digits;46 }47 if (0 == idx)48 {49 digits.insert(digits.begin(), 1);50 return digits;51 }52 return puls(digits, idx-1, 1);53 }54 };

4. 反思

方法1. 递归实现

方法2. 循环实现

转载于:https://www.cnblogs.com/whl2012/p/5589259.html

你可能感兴趣的文章
PHP 微信错误状态返回码说明
查看>>
【4.1】Python中的序列分类
查看>>
ubuntu 移动文件
查看>>
Easy Mock
查看>>
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
Python内置函数(29)——help
查看>>
机器学习系列-tensorflow-01-急切执行API
查看>>
SqlServer 遍历修改字段长度
查看>>
Eclipse快捷键:同时显示两个一模一样的代码窗口
查看>>
《架构之美》阅读笔记05
查看>>
《大道至简》读后感——论沟通的重要性
查看>>
JDBC基础篇(MYSQL)——使用statement执行DQL语句(select)
查看>>
关于React中props与state的一知半解
查看>>
java中Hashtable和HashMap的区别(转)
查看>>
关闭数据库
查看>>
webStrom智能提示忽略首字母大小写问题
查看>>
层叠加的五条叠加法则(一)
查看>>
设计模式六大原则(5):迪米特法则
查看>>
对Feature的操作插入添加删除
查看>>
javascript String
查看>>