?算法入门?《线性枚举》简单09 —— LeetCode 66. 加一
2021/9/4 14:07:10
本文主要是介绍?算法入门?《线性枚举》简单09 —— LeetCode 66. 加一,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一、题目
- 1、题目描述
- 2、基础框架
- 3、原题链接
- 二、解题报告
- 1、思路分析
- 2、时间复杂度
- 3、代码详解
- 三、本题小知识
- 四、加群须知
一、题目
1、题目描述
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
样例输入:digits = [1,2,3]
样例输出:[1,2,4]
2、基础框架
- C语言 版本给出的基础框架代码如下:
int* plusOne(int* digits, int digitsSize, int* returnSize){ }
3、原题链接
LeetCode 66. 加一
二、解题报告
1、思路分析
考虑全是9的情况,数组长度需要加一;其他情况直接顺位模拟加法和进位即可。
2、时间复杂度
需要遍历一边数组求解,所以时间复杂度为 O ( n ) O(n) O(n)。
3、代码详解
int* plusOne(int* digits, int digitsSize, int* returnSize){ int i, add; int *ret = NULL; for(i = 0; i < digitsSize; ++i) { if(digits[i] != 9) { break; } } if(i == digitsSize) { // (1) ret = (int *) malloc( (digitsSize + 1) * sizeof(int)); ret[0] = 1; for(i = 1; i < digitsSize + 1; ++i) { ret[i] = 0; } *returnSize = digitsSize + 1; return ret; } // (2) ret = (int *) malloc( digitsSize * sizeof(int)); *returnSize = digitsSize; add = 1; // (3) for(i = digitsSize - 1; i >= 0; --i) { ret[i] = digits[i] + add; if(ret[i] >= 10) { // (4) ret[i] -= 10; add = 1; }else { add = 0; // (5) } } return ret; }
- ( 1 ) (1) (1) 处理 99999 + 1 的情况
- ( 2 ) (2) (2) 处理其它情况
- ( 3 ) (3) (3) add 代表上一个位的进位,由于是加一,默认最低位进位为 1
- ( 4 ) (4) (4) 如果大于等于10,产生进位
- ( 5 ) (5) (5) 不产生进位
三、本题小知识
利用数组可以对大整数进行进位模拟加法。
四、加群须知
相信看我文章的大多数都是「 大学生 」,能上大学的都是「 精英 」,那么我们自然要「 精益求精 」,如果你还是「 大一 」,那么太好了,你拥有大把时间,当然你可以选择「 刷剧 」,然而,「 学好算法 」,三年后的你自然「 不能同日而语 」。
那么这里,我整理了「 几十个基础算法 」 的分类,点击开启:
这篇关于?算法入门?《线性枚举》简单09 —— LeetCode 66. 加一的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用