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.

题意:一个非负整数按位存储于一个int数组中,排列顺序为:最高位在array[0] ,最低位在[n-1],例如:18,存储为:array[0]=1; array[1]=8;

思路:可以从数组的最后一位开始加1,注意需要考虑进位,如果到[0]位之后仍然有进位存在,则需要在数组起始处新开一个位来存储。

分析:从低位到高位,只有连续遇到9的情况最高位才能加1进位。所以代码如下:

class Solution {
public:vector<int> plusOne(vector<int>& digits) {int len = digits.size();int i=0;for(i=len-1;i>=0;i--){if(digits[i]<9){digits[i]+=1;break;//只要最低位到最高位有一个低于9就不会产生[0]位之后的进位}else {digits[i]=0;}}//各位全是9时if(i==-1){digits.insert(digits.begin(), 1);}return digits;}
};

其他解法:(非常容易理解)

class Solution {
public:vector<int> plusOne(vector<int>& digits) {int i = digits.size() - 1;//相当于n=digits.size,i=n-1int carray = 1;while(i >= 0){if(carray == 1){int sum = digits[i] + 1;digits[i] = sum % 10;if(sum < 10){carray = 0;break;}}i--;}if(carray == 1){digits.insert(digits.begin(), 1);}return digits;}
};

  

转载于:https://www.cnblogs.com/carsonzhu/p/4557147.html

leetcode:Plus One相关推荐

  1. LeetCode:汇总区间【228】

    LeetCode:汇总区间[228] 题目描述 给定一个无重复元素的有序整数数组,返回数组区间范围的汇总. 示例 1: 输入: [0,1,2,4,5,7] 输出: ["0->2&quo ...

  2. LeetCode:跳跃游戏【55】

    LeetCode:跳跃游戏[55] 题目描述 给定一个非负整数数组,你最初位于数组的第一个位置.数组中的每个元素代表你在该位置可以跳跃的最大长度.判断你是否能够到达最后一个位置. 示例 1: 输入: ...

  3. LeetCode:贪婪算法

    LeetCode:贪婪算法 贪婪算法基础 我 717. 1-bit and 2-bit Characters class Solution {public boolean isOneBitCharac ...

  4. LeetCode:输出整体轮廓线和最长子数组长度

    LeetCode:描述轮廓线和最长子数组长度 目录: 输出整体轮廓线 返回最长子数组长度 求数组中奇数和偶数个数相同的最长子数组 1. 输出整体轮廓线 给定一个N行3列二维数组, 每一行表示有一座大楼 ...

  5. LeetCode:棒球比赛【682】

    LeetCode:棒球比赛[682] 题目描述 你现在是棒球比赛记录员. 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数. 2. &qu ...

  6. LeetCode:二叉树相关应用

    LeetCode:二叉树相关应用 基础知识 617.归并两个二叉树 题目 Given two binary trees and imagine that when you put one of the ...

  7. LeetCode:位运算实现加法

    LeetCode:位运算实现加法 写在前面 位运算符 实现加法的思路 两个加数,比如5(101)和6(110),如何不用加法就能得出两者之和呢? 我们知道二进制计算中,如果使用异或将会产生无进位的两者 ...

  8. Leetcode:0002(两数之和)

    LeetCode:0002(两数之和) 题目描述:给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这 ...

  9. LeetCode:二进制手表【401】

    LeetCode:二进制手表[401] 题目描述 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右 ...

  10. LeetCode:验证回文串【125】

    LeetCode:验证回文串[125] 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: ...

最新文章

  1. kubernetes ConfigMap
  2. 《ArcGIS Runtime SDK for Android开发笔记》——(2)、Android Studio基本配置与使用
  3. python基本语法-Python语法基础50题
  4. The application's PagerAdapter changed the adapter's contents without calling notifyDataSetChanged
  5. MySQL数据库常见面试题总结
  6. python股票交易模型_如何用Python建模GGM模型并对股票估值?
  7. 腾讯四位创始人向深圳大学捐3.5亿元:启动人才基金
  8. Apache CXF入门
  9. 前端基础牢记的一些操作-Github仓库管理
  10. Ubuntu16.04安装最新版nodejs
  11. 跨语言调用模块.TXT
  12. 装linux后分区丢失吗,找到了linux分区顺序错乱修复方法
  13. JVM监控及诊断工具GUI篇之Eclipse MAT
  14. chrome浏览器解除pdf加密
  15. 计算机不让更改所有的设置,虚拟机中为域内计算机设置统一主页并不允许域内用户修改(第四节)...
  16. 我的世界 MineCraft RPG 服务器版本选择不完全指北 (内含 我的世界 版本更新内容盘点)
  17. Pyramidal RoR for Image Classification
  18. Android高德地图导航or语音播报
  19. 你的健身方法真的正确吗
  20. 初试Cisco Packet Tracer–5——路由器连接两个子网

热门文章

  1. jQ 插件 iscroll.js
  2. BZOJ4563[Haoi2016]放棋子
  3. Windows远程命令执行0day漏洞安全预警
  4. 正则表达式的顺序优先级
  5. FireFox不支持cursor:hand
  6. ActiveMQ传输文件的几种方式原理与优劣
  7. Deep Learning回顾之LeNet、AlexNet、GoogLeNet、VGG、ResNet
  8. 背景建模之单高斯实现
  9. python小白入门可以参看下
  10. mongodb 3.2性能测试