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

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

/*leetcode 66. Plus One题目大意:给定一个非负整数,存储在数组中,把这个数字加1,这个数的最高位在最前面。解题思路:如果这个数的最低位为小于9,直接加到最低位去如果这个数的最低位为9分为2中情况:1、没有到最高位(也就是digits[0]),让这一位为0,然后处理高它一位的情况,也是加12、如果到了最高位,说明了,这个数是很多9,不然加1怎么可能会进到最高位呢,因此让最高为为1,然后压入一个0.*/#include 
#include
using namespace std;class Solution {public: vector
plusOne(vector
& digits) { if (digits.size() == 0) return digits; for (size_t i = digits.size() - 1; i >= 0; --i) { //处理小于9的情况,加一后直接返回 if (digits[i] < 9) { ++digits[i]; return digits; } else //处理等于9的情况 { if (i != 0) //没有到最高位 digits[i] = 0; else //到了最高位了 { digits[0] = 1; digits.push_back(0); return digits; } } } }};void test_PlusOne(){ vector
vecInt1{ 9,9,9,9,9 }; vector
vecInt2{ 8,9,9,9,9 }; Solution sol; vector
result1; result1 = sol.plusOne(vecInt1); for (auto i : result1) cout << i << " "; cout << endl; vector
result2; result2 = sol.plusOne(vecInt2); for (auto i : result2) cout << i << " "; cout << endl;}int main(){ test_PlusOne(); return 0;}

转载地址:http://nxmxb.baihongyu.com/

你可能感兴趣的文章
关于 [[self class] alloc]的理解
查看>>
Eclipse导入Web项目后代码不报错但项目报错(左上角有红叉)解决方案
查看>>
List、Set、数据结构、Collections
查看>>
Sudoku Solver
查看>>
Combination Sum
查看>>
First Missing Positive
查看>>
Trapping Rain Water
查看>>
Permutation Sequence
查看>>
Valid Number
查看>>
Text Justification
查看>>
Simplify Path
查看>>
Add Two Numbers
查看>>
Longest Substring Without Repeating Characters
查看>>
Median of Two Sorted Arrays
查看>>
Search for a Range
查看>>
罗马数字与阿拉伯数字的相互转化
查看>>
3Sum
查看>>
Next Permutation
查看>>
sys文件系统
查看>>
Mysql常用命令大全
查看>>