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

加一-力扣66-java高效方案

一、题目描述

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

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

你可以假设除了整数 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]

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/plus-one

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、运行结果

三、解题思路

先将最后一位加一,设置一个进位变量,然后从后往前逐位计算当前位的值和是否需要进位,如果最高位还有进位,则需要在原数值的最前面加上一个1.

在中间计算每一位的过程中,如果当前位没有进位,即可直接结束计算,返回结果。

四、AC代码

class Solution {public int[] plusOne(int[] digits) {int len = digits.length;digits[len-1] += 1;  //最后一位先加上1int flag = 0;  //进位标志for(int i=len-1; i>=0; --i){  //从后往前逐位计算int tmp = (digits[i]+flag) % 10;flag = (digits[i]+flag) / 10;digits[i] = tmp;}if(flag == 1) {  //最高位还有进位digits = new int[len+1]; digits[0] = flag; }return digits;}
}
http://www.lryc.cn/news/4724.html

相关文章:

  • 记一次 .NET 某游戏网站 CPU爆高分析
  • 集群使用——资源管理和租户创建
  • 谷歌浏览器登录失败,提示【无法同步到“...@gmail.com”】
  • 75 111111
  • 分销系统逻辑
  • MySQL视图特性
  • RabbitMQ详解(二):Docker安装RabbitMQ
  • 如何使用代码注释:关于JavaScript与TypeScript 注释和文档的自动生成
  • Echarts 设置面积区域图(areaStyle核心)
  • pandas——字符串处理【建议收藏】
  • 反射,枚举,lambda表达式
  • .Net Core对于RabbitMQ封装分布式事件总线
  • GPIO功能描述
  • 指派问题与匈牙利法讲解
  • day5——冒泡排序,选择排序和插入排序的学习
  • Windows 数据类型 (Windows Data Types)
  • 九龙证券|本周5只新股申购,特斯拉、蔚来、理想的供应商来A股了!
  • 设计模式(持续更新)
  • Prometheus 告警规则
  • mulesoft MCIA 破釜沉舟备考 2023.02.13.02
  • 获取DLL运行时路径的方法
  • “华为杯”研究生数学建模竞赛2006年-【华为杯】D题:学生面试中教师安排的优化与算法(附获奖论文)
  • 【JavaScript】复习 【对象参数】【函数参数】
  • 如何批量提取文件名到excel表格?
  • CUDA线程层次一文搞懂|参加CUDA线上训练营
  • Linux文件默认权限:umask
  • SonicWall:请立即修复SMA 1000 漏洞
  • 基于VS调试分析 + 堆栈观察问题代码段
  • QFramework框架学习
  • 移动OA系统,联动企业协作让办公高效无间断