leetcode笔记:Plus One
来源:互联网 发布:软件开发网上兼职 编辑:程序博客网 时间:2024/06/03 21:39
一.题目描述
Given a number represented as an array of digits, plus one to the number.
二.题目分析
一道高精度计算的题,从低位到高位进行计算,同时考虑进位的问题,若最高位计算结果还有进位,就需要在最高位前面添加一位。可做到时间复杂度为O(n),空间复杂度为O(1)。
这道题应该算是简化版,因为要求只是对一个数加1,如果任何一位的运算没有进位,则更高位也不需要进行进位处理了,可以直接输出结果。
三.实例代码
#include <iostream>#include <vector>using namespace std;class Solution {public: void plusOne(vector<int>& digits) { int carry = 1; const int digitsSize = digits.size(); for (int i = digitsSize - 1; i >= 0; i--) { digits[i] += carry; if (digits[i] < 10) { carry = 0; break; } carry = digits[i] / 10; digits[i] %= 10; } if (carry != 0) // 若最高位运算仍有进位,则需新增一位并置1 digits.insert(digits.begin(), carry); }};
两个运行结果:
四.小结
又是一道涉及位运算的题目,解决方法有多种,而且应该考虑plus不同的值时,又该怎么处理。
3 0
- leetcode笔记:Plus One
- LeetCode笔记:66. Plus One
- LeetCode: Plus One
- LeetCode Plus One
- [Leetcode] Plus One
- LeetCode: Plus One
- leetcode 33: Plus One
- [LeetCode] Plus One
- [leetCode] Plus One
- 【leetcode】Plus One
- [LeetCode]Plus One
- [leetcode]Plus One
- LeetCode-Plus One
- [leetcode] plus one
- LeetCode - Plus One
- [LeetCode] Plus one
- LeetCode:Plus One
- leetcode之Plus One
- 网站
- 微信第三方平台开发四(全网发布接入检测)
- MyEclipseKey
- 解决maven编译spark1.5报错问题
- OpenSessionInView详解
- leetcode笔记:Plus One
- APP运营推广超级攻略(2015新版)
- jvm
- 设计模式6--责任链模式(The chain of responsibility pattern)
- Who-are-the-top-Java-experts-in-the-world
- 模拟网易新闻主页的滚动效果
- 背景全屏样式
- 获取域名和ip
- 【排序】冒泡排序法