当前位置: 首页 > news >正文

力扣 66.加一 (Java实现)

题目分析

        给定一个数组,可以组成一个数字,将数字加一后,返回新数组

思路分析

        首先跟着题目思路走,将数组按位*10可以得到数字,再加一,加一后按位%10,可以得到新的数组。但是此处数字会过大,导致数字溢出,切换为long型后,数字过大也会让乘除的操作精度丢失。

        换个思路,跳过数组与数字转换。这个题目的重点就在于最后一位,如果最后一位小于9,则最后一位+1,然后直接输出数组。如果是9,则考虑进位,如果全是9,则进位后首位为1,其余为0;

代码


class Solution {
    public int[] plusOne(int[] digits) {
        int n=digits.length-1;//题目给定数组的末位
        for(int i=n;i>=0;i--){//从末尾到首位遍历
            if(digits[i]<9){//如果这一位不为9
                digits[i]++;该位+1
                return digits;//直接输出
            }
            digits[i]=0;//如果为9,就先把这一位变成0,同时继续循环,直到遇到不为9的值
        }
        int[] re=new int[n+2];//此处为全是9的情况,需要新数组多一位
        re[0]=1;//首位1,其余0
        return re;//输出新数组
    }
}

        今天走人户,所以在网吧做进不去cf,今天就做一道力扣吧

        感谢您能够看到这里,一起见证小何同学的算法学习,如果您有不同的见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。

相关文章:

  • ROS应用之SwarmSim在ROS 中的协同路径规划
  • Baklib全场景云平台:一站式知识管理赋能企业效能升级
  • C++11 thread
  • 大模型应用开发书籍推荐
  • 对项目交接的一些思考
  • 通用知识库问答流程
  • vue2.0接入海康威视控件包V3.3.0——海康威视摄像头接入前端页面(webSDK包)模式
  • 【STM32】外部时钟|红外反射光电开关
  • 40、【OS】【Nuttx】OSTest分析(4):内存监控(二)
  • Python进制转换
  • inline关键字
  • effective-Objective-C第六章阅读笔记
  • hive:分区>>静态分区,动态分区,混合分区
  • 信通院:政府数字化转型发展研究报告(2024年)
  • 解锁 Java 回调函数:异步编程与事件处理的利器
  • Python实现AWS Fargate自动化部署系统
  • enum class与enum
  • 【Python 学习 / 4】基本数据结构之 字符串 与 集合
  • 【AI】ragflow + ollama + deepseek-r1本地部署后的配置 目的:给AI大模型输入知识,代替模型微调工作
  • npm安装依赖(npm install)时遇到认证错误的解决方案
  • 警方通报男子地铁上拍视频致乘客恐慌受伤:列车运行一度延误,已行拘
  • 巴西总统卢拉将访华
  • “苏河超级管”调研:桥下公园“留白”很好,指引差点
  • 玉渊谭天丨中方为何此时同意与美方接触?出于这三个考虑
  • 雇来的“妈妈”:为入狱雇主无偿带娃4年,没做好准备说再见
  • 迪拜金融市场CEO:2024年市场表现出色,超八成新投资者来自海外