我的编程空间,编程开发者的网络收藏夹
学习永远不晚

go语言题解LeetCode66加一示例详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

go语言题解LeetCode66加一示例详解

题目描述

原题链接 :

66. 加一

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

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

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

示例 1:

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

示例 2:

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

示例 3:

输入:digits = [0]
输出:[1]

提示:

1 <= digits.length <= 100

0 <= digits[i] <= 9

思路分析

对于一般的数字,直接在末位加一即可,

本题特殊的两个点:

若加一之后的值为10,需要进一位

若数字为类似999 ,加一之后需要多一位数。使用insert()来实现, insert函数 : vec.insert(begin()+i ,a) 在第i个元素插入a

AC 代码

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int size = digits.size();
        if(digits[size-1] != 9) //若末位不等于9,正常加一
        {
            ++digits[size-1];
        }
        else //若末位等于9,加一等于0
        {
            digits[size-1] = 0;
            for(int i = size - 1; i >0; --i) //若加完一后若等于0,下一位要进一 如869
            {
                if(digits[i] == 0)
                {
                    digits[i-1] = (digits[i-1] + 1) % 10;
                }
                else
                    break; //若某一位是数不需要进一,跳出循环
            }
            if(digits[0] == 0) //若到最后最高位也等于0,需要多一位数 如99 + 1  此时为答案为00,进行一下操作
            {
                digits.insert(digits.begin(),1); //在最高位插入1
            }
        }
        return digits;
    }
};

小结

题目不长,但是还是有点拗口的感觉,首先要先弄明白题意,然后正常的思路下考虑进位的溢出等就可以解出来。

JavaScript 66题

代码


var plusOne = function(digits) {
    //先遍历 从右向左
    for(let i = digits.length-1;i>=0;i--){
        if(digits[i] !==9){
            digits[i]++
                return digits;
        }else{
            // 是 9
            digits[i] = 0
        }
    }
    let result = [1,...digits];
    
    return result;
};

python3 循环判断

分析:

这是一道基础的属组倒序查找的问题,唯一需要关注的就是类似[9,9]的场景,循环后需要看是否需要进位。

如果需要进位,则在数组0位置插入1,才能保证接过的正确性。

class Solution:
    def plusOne(self, digits):
        count = 1
        for i in range(len(digits) - 1, -1, -1):
            count, digits[i] = divmod(digits[i] + count, 10)
            if count == 0:
                break
        if count:
            digits.insert(0,count)
        return digits

JAVA解决进位问题

解题思路

倒着看,不为9,直接加1,返回:为9的话,需要进位,变成0即可;

特殊情况 9 99 等,一直为9的,结果肯定是10 ,100 数组长度加1 ,首位为1

代码

class Solution {
    public int[] plusOne(int[] digits) {
        int length = digits.length;
        // 最后一个不为九的数加1,为九的变0,9 99 单独处理
        for (int i =  length - 1; i >= 0; i--) {
            if(digits[i] != 9){
                digits[i] = digits[i] + 1;
                return digits;
            }else {
                digits[i] = 0;
            }
        }
        int[] ints = new int[length + 1];
        ints[0] = 1;
        return ints;
    }
}

以上就是go语言题解LeetCode66加一示例详解的详细内容,更多关于go题解LeetCode66加一的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

go语言题解LeetCode66加一示例详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

go语言题解LeetCode66加一示例详解

这篇文章主要为大家介绍了go语言题解LeetCode66加一示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

Go语言LeetCode500键盘行题解示例详解

这篇文章主要为大家介绍了Go语言LeetCode500键盘行题解示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

Go语言题解LeetCode下一个更大元素示例详解

这篇文章主要为大家介绍了Go语言题解LeetCode下一个更大元素示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

go语言题解LeetCode228汇总区间示例详解

这篇文章主要为大家介绍了go语言题解LeetCode228汇总区间示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

go语言题解LeetCode1160拼写单词示例详解

这篇文章主要为大家介绍了go语言题解LeetCode1160拼写单词示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

go语言题解LeetCode506相对名次示例详解

这篇文章主要为大家介绍了go语言题解LeetCode506相对名次示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

Go语言题解LeetCode455分发饼干示例详解

这篇文章主要为大家介绍了Go语言题解LeetCode455分发饼干示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

go语言LeetCode题解944删列造序示例详解

这篇文章主要为大家介绍了go语言LeetCode题解944删列造序示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-28

Go语言题解LeetCode268丢失的数字示例详解

这篇文章主要为大家介绍了Go语言题解LeetCode268丢失的数字示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

Go语言题解LeetCode1051高度检查器示例详解

这篇文章主要为大家介绍了Go语言题解LeetCode1051高度检查器示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-29

Go语言题解LeetCode463岛屿的周长示例详解

这篇文章主要为大家介绍了Go语言题解LeetCode463岛屿的周长示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

Go语言使用对称加密的示例详解

目录介绍AES 算法实践总结介绍 在项目开发中,我们经常会遇到需要使用对称密钥加密的场景,比如客户端调用接口时,参数包含手机号、身份证号或银行卡号等。 对称密钥加密是一种加密方式,其中只有一个密钥用于加密和解密数据。通过对称加密进行通信的实
2022-06-07

Go语言题解LeetCode888公平糖果交换示例详解

这篇文章主要为大家介绍了Go语言题解LeetCode888公平糖果交换示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-28

Go语言题解LeetCode35搜索插入位置示例详解

这篇文章主要为大家介绍了Go语言题解LeetCode35搜索插入位置示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-30

Go语言题解LeetCode1260二维网格迁移示例详解

这篇文章主要为大家介绍了Go语言题解LeetCode1260二维网格迁移示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-05

Go语言leetcode题解953验证外星语词典示例详解

这篇文章主要为大家介绍了Go语言leetcode题解953验证外星语词典示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-28

go语言http模型reactor示例详解

这篇文章主要介绍了go语言http模型reactor,接下来看一段基于reactor的示例,这里运行通过gorunmain.go,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
2023-01-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录