66. 加一 (编程基础0到1)(Leetcode)

题目:

给定一个表示 大整数 的整数数组 digits,其中 digits[i] 是整数的第 i 位数字。这些数字按从左到右,从最高位到最低位排列。这个大整数不包含任何前导 0

将大整数加 1,并返回结果的数字数组。
示例 1:

复制代码
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
加 1 后得到 123 + 1 = 124。
因此,结果应该是 [1,2,4]。

示例 2:

复制代码
输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
加 1 后得到 4321 + 1 = 4322。
因此,结果应该是 [4,3,2,2]。

示例 3:

复制代码
输入:digits = [9]
输出:[1,0]
解释:输入数组表示数字 9。
加 1 得到了 9 + 1 = 10。
因此,结果应该是 [1,0]。

题目来源:

https://leetcode.cn/problems/plus-one/description/?envType=study-plan-v2&envId=programming-skills

思路分析:

自己写的 没通过。后面看的题解。方法很厉害 来学习一下。

num+=digits[i]*(pow(10,n-i-1)); //我是这句话没通过

代码实现:

这个是自己写的:

cpp 复制代码
class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int n=sizeof(digits);
        int num=0;
        for(int i=0;i<n;i++){
         num+=digits[i]*(pow(10,n-i-1));   
        }
        num=num+1;
        //数组转换成数组
        if(num/pow(10,n)==0){//说明没有进位
            for(int i=0;i<n;i++){
                digits[n-1-i]=num%10;
                num=num/10;
            }
        }
        else{
            for(int i=0;i<n+1;i++){//发生进位
                digits[n-i]=num%10;
                num=num/10;
            }
        }
       return digits;
    }
};

这个是借鉴别人的:

cpp 复制代码
class Solution  {

public:

    vector<int> plusOne(vector<int>& digits) {

        for(int i=digits.size()-1; i>=0; i--)

        {

            digits[i]++;

            if(digits[i] == 10)  digits[i] = 0;

            else  return digits;

        }

        digits.insert(digits.begin(), 1);

        return digits;

    }

};

作者:无邪
链接:https://leetcode.cn/problems/plus-one/solutions/367391/si-lu-chao-ji-jian-dan-gong-da-jia-can-kao-by-wuxi/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

题目心得:

  • 数组中 insert(place,n)函数的使用; //将数组中指定的place处的元素+n
  • 例子 digits.insert(digits.begin(), 1);
相关推荐
老胡说科技1 小时前
美砺科技谢秀鹏:让“看见”走在“相信”之前,AI驱动下的数字化范式革命,从“技术长征”到“生态协同”
人工智能·科技
endcy20164 小时前
基于Spring AI的RAG和智能体应用实践
人工智能·ai·系统架构
Blossom.1185 小时前
移动端部署噩梦终结者:动态稀疏视觉Transformer的量化实战
java·人工智能·python·深度学习·算法·机器学习·transformer
FPGA小迷弟5 小时前
ChatGPT回答用AI怎么怎么赚钱
大数据·人工智能
轻微的风格艾丝凡5 小时前
卷积的直观理解
人工智能·深度学习·神经网络·算法·计算机视觉·matlab·cnn
月下倩影时5 小时前
视觉进阶篇——机器学习训练过程(手写数字识别,量大管饱需要耐心)
人工智能·学习·机器学习
PixelMind5 小时前
【超分辨率专题】HYPIR:扩散模型先验与 GAN 对抗训练相结合的新型图像复原框架
人工智能·生成对抗网络·扩散模型·图像复原
说私域6 小时前
从裂变能力竞争到技术水平竞争:开源AI智能名片链动2+1模式S2B2C商城小程序对微商企业竞争格局的重塑
人工智能·小程序·开源
xybDIY6 小时前
基于 Tuya.AI 开源的大模型构建智能聊天机器人
人工智能·机器人·开源
田梓燊7 小时前
红黑树分析 1
算法