算法题每日一练---第73天:加一

简介: 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

4.png

一、问题描述


给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。


最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。


题目链接:加一

二、题目要求


样例 1

输入: digits = [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。


样例 2

输入: nums = [9,9]
输出: [1,0,0]


考察

数学思想、进位
建议用时15~35min


三、问题分析


这一题我刚开始看的时候,觉得这题这么简单,直接末位+1,秒杀。提交的时候才发现,题目要求要满10进一,相当于10进制的运算。

2.png

首先,我们要从下标0开始存储,最后翻转一下数组就行了,这样可以避免进位不足的情况。

定义r表示进位,满10进1,初始值为1,因为题目要+1,后面只需要对应的下标加上进位r就行。

这种情况还需要满足一个特殊的情况,就是r最后还需要向前进位,但下标到头了,这种情况要补一位。


四、编码实现


classSolution {
public:
vector<int>plusOne(vector<int>&digits) {
inti,n=digits.size(),r=1,k;//初始化数据vector<int>v;//存储数据for(i=0;i<n;i++)//数组从0~n-1存储        {
k=digits[n-1-i]+r;//计算v.push_back(k%10);//存储r=k/10;//判断是否向前进位        }
if(r!=0)//还需要向前进位v.push_back(r);
reverse(v.begin(),v.end());//翻转数组returnv;//输出结果    }
};

五、测试结果1.png

相关文章
|
算法 Java 程序员
【算法每日一练及解题思路】有n级台阶,一次只能上1级或2级,共有多少种走法?
本文深入解析了“爬楼梯问题”,探讨了递归与迭代两种解法,并提供了Java代码实现。通过分析问题本质,帮助读者理解动态规划技巧,提高解决实际编程问题的能力。关键词:Java, 算法, 动态规划, 爬楼梯问题, 递归, 迭代。
586 0
|
算法
算法题每日一练---第78天:二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target
265 1
算法题每日一练---第78天:二分查找
|
存储 算法
|
算法
算法题每日一练---第76天:丑数 l
丑数 就是只包含质因数 2、3 和 5 的正整数。
227 1
算法题每日一练---第76天:丑数 l
|
存储 算法 Python
python 力扣算法实现2 :#给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 # #最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
python 力扣算法实现2 :#给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 # #最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
|
存储 算法
leetcode算法66.加一
定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。
156 0
leetcode算法66.加一
|
存储 算法
☆打卡算法☆LeetCode 66、加一 算法解析
“给定一个由整数组成的数组,在该数的基础上加一。”
|
算法
算法题每日一练---第75天:Nim 游戏
你和你的朋友,两个人一起玩 Nim 游戏。
425 0
算法题每日一练---第75天:Nim 游戏
|
算法
算法题每日一练---第74天:快乐数
编写一个算法来判断一个数 n 是不是快乐数。
248 0
算法题每日一练---第74天:快乐数

热门文章

最新文章