LeetCode 66. 加一(java)

题目:

https://leetcode-cn.com/problems/plus-one/

如果digits数组最后一位小于9,则只需要将digits数组最后一个数+1,返回digits数组即可;如果最后一位等于9,则需要设置一个循环进行加法模拟,即对每一位进行判断,小于10退出循环,如果等于10,进位,这种情况则需创建一个新数组,长度为digits长度加一,将数据保存进去即可。

代码:

class Solution {
    public int[] plusOne(int[] digits) {
        int l=digits.length;
        digits[l-1]+=1;
        for(int i=l-1;i>0;i--){
            if(digits[i]==10){
                digits[i]=0;
                digits[i-1]+=1;
            }
            else
                break;
        }
        if(digits[0]==10){
            int[] a=new int[l+1];
            a[0]=1;
            digits[0]=0;
            for(int i=1;i<l+1;i++)
                a[i]=digits[i-1];
            return a;
        }
        return digits;
    }
}

原文地址:https://www.cnblogs.com/y1040511302/p/11326326.html

时间: 2024-11-10 02:29:20

LeetCode 66. 加一(java)的相关文章

[leetcode] 66. 加一

66. 加一 模拟加法运算,很简单 注意进位即可 class Solution { public int[] plusOne(int[] digits) { int k = digits.length - 1; digits[k] += 1; while (k > 0) { if (digits[k] < 10) break; digits[k] -= 10; digits[k - 1] += 1; k--; } if (digits[0] >= 10) { digits[0] -= 1

LeetCode 66. 加1

题目: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123. 示例2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321. 思路与解答: 题解一: 这道题最直观的方法就是首先判断末位是否为9,不为9,直接加1返回,具体为: 从末位开

leetcode 66. 加一(Plus One)

目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123. 示例 2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321. 解法: class Solution { publi

Leetcode#66.加一 (C++解法)

目录 一.题目描述 二.解法 9,9,9,9 1,2,3,4 & 1,9,9,9 题目链接: https://leetcode-cn.com/problems/plus-one/ 一.题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123. 示例 2: 输入: [4,

LeetCode 之 LRU Cache Java实现

LeetCode刷了41道题了,流程是按照戴兄的小书,很多不会的是参考Kim姐的代码,自己用Java抠腚的. 前几天做到了LRU Cache: C++的实现方法大同小异,大都用的是一个list加一个hash,hash中存储list节点地址,每次get从hash中寻key,有则将list相应节点放到链表头,没有则返回-1:每次set先判断hash中是否存在,存在则将相应节点移到表头,重置value值,如果不存在,判定长度是否达到预设的capacity,如果达到,删除表尾节点,新节点插入表头. 但是

《深入理解Java虚拟机》- Java虚拟机是如何加载Java类的?

Java虚拟机是如何加载Java类的?  这个问题也就是面试常问到的Java类加载机制.在年初面试百战之后,菜鸟喜鹊也是能把这流程倒背如流啊!但是,也只是字面上的背诵,根本就是像上学时背书考试一样. tonight ! 我们把它映射到实战里,看看如何用代码说明这个流程. ready! go!  ----------------在这之前还是搞点理论吧,不然又要先去百度加载机制流程了. 一.类加载机制(理论部分) 类加载机制有三大过程:加载.链接.初始化.其中链接又细分为验证.准备及解析. Java

Leetcode: Longest Palindromic Substring. java

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 动态规划public class Solution { public String longestPalindrome(String s) { if

LeetCode 66. Plus One(加1)

Given a non-negative integer represented as a non-empty array of digits, plus one to the integer. You may assume the integer do not contain any leading zero, except the number 0 itself. The digits are stored such that the most significant digit is at

LeetCode 66 Plus One(加一)(vector)

翻译 给定一个以一系列数字表示的非负数.将其加一并转换成数字. 数字存储的最高位在列的最前面. 原文 Given a non-negative number represented as an array of digits, plus one to the number. The digits are stored such that the most significant digit is at the head of the list. 分析 一看到这个题目我就想起来前面做过的一道关于求