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

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

题目描述:

Given a non-empty array of digits representing a non-negative integer, plus one to the integer.

The digits are stored such that the most significant digit is at the head of the list, and each element in the array contain a single digit.

You may assume the integer does not contain any leading zero, except the number 0 itself.

Example 1:

Input: [1,2,3]Output: [1,2,4]Explanation: The array represents the integer 123.

Example 2:

Input: [4,3,2,1]Output: [4,3,2,2]Explanation: The array represents the integer 4321.

 

要完成的函数:

vector<int> plusOne(vector<int>& digits) 

 

说明:

1、这道题给定一个vector,里面装了几个个位数,这几个数形成了一个整数,比如[1,3,2,4],就是1324。要求把这个整数加一,然后把结果返回,还是返回这种格式的vector。

2、这道题很容易,我们最开始设定i=digits.size()-1,也就是最后一位,我们不断地判断digits[i]的数值是否为9,如果是,把这一位改为0,接着i--,继续判断前一位。

如果某一位不等于9了,那么我们结束循环,把这一位加一。如果一直跑完所有数值,都等于9,那么我们在最前面插入1。最后返回digits。

代码如下:

vector
plusOne(vector
& digits) { int i=digits.size()-1; while(digits[i]==9&&i>=0)//如果当前位为9,并且i>=0 { digits[i]=0;//把当前位修改为0 i--;//i=i-1 } if(i==-1)//特殊状态,比如999这种 digits.insert(digits.begin(),1); else//常见状态,比如299 digits[i]++; return digits; }

上述代码实测4ms,beats 99.68% of cpp submissions。

转载于:https://www.cnblogs.com/chenjx85/p/9102544.html

你可能感兴趣的文章
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>
Myeclipes快捷键
查看>>
我的友情链接
查看>>
ToRPC:一个双向RPC的Python实现
查看>>