zoukankan      html  css  js  c++  java
  • 算法----------加一

    题目:

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

    我的解答:第一版:

    class Solution {
        public int[] plusOne(int[] digits) {
            //last 表示当前加1的位置
            int last = digits.length-1;
            // 如果当前加1  大于等于10
            while (last >=0 && digits[last] +1 >=10){
                //当前位置的数字为10的余数
                digits[last] = (digits[last] +1) %10;
                //需要加1的位置往前走
                last --;
            }
            //如果需要加1的位置是-1 说明当前数组不够用了
            if (last == -1) {
                int[] arr = new int[digits.length+1];
                arr[0] = 1;
                System.arraycopy(digits,0,arr,1,digits.length-1);
                return arr;
            }else {
                digits[last] +=1;
            }
            return digits;
    
        }
    }
    

    第二版:

    class Solution {
        public int[] plusOne(int[] digits) {
            //第二版
            //last 表示当前加1的位置
            int last = digits.length-1;
            // 如果当前加1  大于等于10
            while (last >=0 && digits[last] ==9){
                //当前位置的数字为10的余数
                digits[last] = 0;
                //需要加1的位置往前走
                last --;
            }
            //如果需要加1的位置是-1 说明当前数组不够用了
            if (last == -1) {
                int[] arr = new int[digits.length+1];
                arr[0] = 1;
                System.arraycopy(digits,0,arr,1,digits.length-1);
                return arr;
            }else {
                digits[last] +=1;
            }
            return digits;
    
        }
    }
    
  • 相关阅读:
    expandablelistview学习在listView里面嵌套GridView
    App数据格式之解析Json
    不应和应该在SD卡应用应用
    9 个用来加速 HTML5 应用的方法
    Android设计模式系列-索引
    ObjectiveC语法快速参考
    App列表显示分组ListView
    进程、线程和协程的图解
    Python多进程原理与实现
    Python多线程的原理与实现
  • 原文地址:https://www.cnblogs.com/caoxinyu/p/10568475.html
Copyright © 2011-2022 走看看