Leetcode C语言 “加一”
加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
例:
输入:[1,2,3]
输出:[1,2,4]
解释:输入数组表示数字123
实例2:
输入:[4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字4321
整体思路就是从数组最后一个元素判断是否为9或者0,若为9或0则将该元素变0前一位进一,若不为0,则直接进一。这两个情况都是不用新创建数组的,返回原来的数组。另一种情况就是999这样的数字,需要新创建一个数组(比原数组大一位),并把新数组里的元素置为0第一位置为1,再返回新数组。
C语言版本实现如下:
#include<stdio.h>
#include<stdlib.h>
//创建一个返回int *的函数指针,因为最后要有一个数组来接受函数的返回值
//int *digits参数接受数组,digitsSize代表数组的大小
int* plusOne(int* digits, int digitsSize, int* returnSize)
{int i;//申请了一个比原数组大的数组int* ree = (int*)malloc((digitsSize + 1) * sizeof(int));for (i = digitsSize - 1; i >= 0; i--){if (digits[i] < 9){digits[i] = digits[i] + 1; break;}else{digits[i] = 0;}}//全为9的情况if (digits[0] == 0){int j;for (j = i; j < digitsSize + 1; j++){ree[j] = 0;}ree[0] = 1;*returnSize = digitsSize + 1;return ree;}else{*returnSize = digitsSize;return digits;}free(ree);ree = NULL;}int main()
{int digits[] = {9,9,9 };int returnSize;//returnsize是数组的大小,且是全局变量int* arr = plusOne(digits, 3, &returnSize);for (int i = 0; i < returnSize; i++){printf("%d ", arr[i]);}return 0;
}
``
Leetcode C语言 “加一”相关推荐
- QT多国语言加载qm文件不起效果问题总结
请确保qm的文件路径正确,该文件程序一定能找得到. 当有多个qm文件时,后加载的可能会覆盖掉前期加载的,请检查是不是后加载的qm导致多国语言失败. 请检查QTranslator对象在窗口.程序生存期内 ...
- python调用r语言加载包错误_Python调用R语言
网络上经常看到有人问数据分析是学习Python好还是R语言好,还有一些争论Python好还是R好的文章.每次看到这样的文章我都会想到李舰和肖凯的<数据科学中的R语言>,书中一直强调,工具不 ...
- 德国留学语言c1,德国留学 纯语言签证和语言加留学签的区别介绍
[跟着沪江走,高分在招手]·[留学资讯] 1.概念: 首先是纯语言签证,这是一种签证的类型,就是纯粹以学习德语为目的的签证,到德国之后就是读语言班,学习德语,不能从事其他事情. 然后是语言加留学签证, ...
- Leetcode 592. 分数加减运算 C++
Leetcode 592. 分数加减运算 题目 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 ...
- c++语言表白超炫图形_教你用C语言加图形库打造炫酷表白连连看
图1 今天小编用简单的C语言知识写一个连连看的游戏,但是是有含义的哈,游戏玩完之后又是属于一个表白程序,也感觉不错的哦. 下面小编把全部的代码发出来一下,以及效果图发一下,最终的话把涉及的知识点也讲解 ...
- 用devc++表白_教你用C语言加图形库打造炫酷表白连连看
图1 今天小编用简单的C语言知识写一个连连看的游戏,但是是有含义的哈,游戏玩完之后又是属于一个表白程序,也感觉不错的哦. 下面小编把全部的代码发出来一下,以及效果图发一下,最终的话把涉及的知识点也讲解 ...
- LeetCode 592. 分数加减运算(字符串+最大公约数)
1. 题目 给定一个表示分数加减运算表达式的字符串,你需要返回一个字符串形式的计算结果. 这个结果应该是不可约分的分数,即最简分数. 如果最终结果是一个整数,例如 2,你需要将它转换成分数形式,其分母 ...
- 如何为prel语言加载模块_WebAssembly 系列(第四部分)- 创建和使用WebAssembly模块...
原文链接 这是 WebAssembly 系列的第四篇,如果你没读过第一篇,我建议你读下. WebAssembly 是除了 JavaScript 外另一种在网页上面运行的编程语言.在过去,假如想要在浏览 ...
- python调用r语言加载包错误_Python中调用R语言包指南.docx
Python中调用R语言包指南R语言是非常强大的做统计分析和建模方面的开源软件,它有非常丰富的统计软件包,做统计可以说只有你想不到的,没有R办不到的.Python又是当下最流行的编程软件之一,Pyth ...
最新文章
- Codeforces Round #649 (Div.2)题解
- php解析QQmv直链,网易云音乐直链解析API源代码^-^
- 软件架构解读与架构师角色培养——希赛嘉宾聊天实录
- Excel多因素不重复方差分析
- 前端学习(1165):扩展运算符01
- vue2.x vant2.x H5 移动端脚手架
- SQL Server 2005 安装后,没有Management Studio管理工具的解决办法
- python 逐行读取文件_Python fileinput模块:逐行读取多个文件
- Mac上使用CleanMyMac彻底擦除文件详细教程
- 驱动设计ARM(6410)-按键驱动0基础知识点
- 应急响应-winlinux分析后门勒索病毒攻击
- BorisFX Sapphire 2019 for OFX Mac使用教程
- 七夕撒狗粮,结婚五周年
- 棋牌游戏网站支付接口那些事儿
- input[type=file]如何屏蔽“未选择任何文件”
- 串口调试助手中设置快捷键
- 【学习笔记】到底是谁先开枪?——网络游戏同步机制初探
- 线程八—— 线程插队 join()
- ros2_control官方文档
- win10病毒和威胁防护无法重新启动解决方法