• [LeetCode#66]Plus One


    The problem:

    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.

    link: https://oj.leetcode.com/problems/plus-one/

    My analysis:

    This problem is a little tricky but meaningful!
    The key point we should grasp tigitly is that we only add "1"(one digit) to the number.
    The "1" have many hints in our algorithm design.
    1. we can directly set the carry's initial value as 1. (add the program's elegance!)
    2. we compute the carry for next iteration. thus, if we encounter the carry as 0, it means there would be no changes in the left partition(digits), we no longer need to proceed on.
    3. if we scan the all digits of int[] digits, we encounter no 0. it means we have an carry exceeds the significant digit.
    The tricky part is that, we could know the final value, cause we only add 1 to the original number. 9999 -> 10000.

    My solution:

    public class Solution {
        public int[] plusOne(int[] digits) {
            if (digits == null || digits.length == 0)
                return digits;
            
            int carry = 1; // assign 1 to carry directly
            int temp_digit;
            
            for (int i = digits.length - 1; i >= 0; i--) {
                    temp_digit = (digits[i] + carry) % 10;
                    carry = (digits[i] + carry) / 10;
                    digits[i] = temp_digit;
                    
                    if (carry == 0)
                        return digits;
            }
            
            int[] ret = new int[digits.length + 1];
            ret[0] = 1;
            return ret;
        }
    }
  • 相关阅读:
    Python函数
    Python的集合框架
    go的相关用法
    如何完整反编译AndroidMainfest.xml
    英语中时间的表达方法
    3. vue脚手架安装 express 框架使用 vue框架 weiUI
    2. TypeScript笔记
    基于SignalR的消息推送与二维码描登录实现
    MVC-Model数据注解(三)-Remote验证的一个注意事项
    MVC Remote属性验证
  • 原文地址:https://www.cnblogs.com/airwindow/p/4207982.html
Copyright © 2020-2023  润新知