zoukankan      html  css  js  c++  java
  • PlusOne

    问题描述:一个数组每一位代表一个数字的每一位。数字高位在数组的低位。求数字加1后得到新数组。

    算法分析:要从数组的高位到低位进行遍历。

    public class PlusOne
    {
    	public int[] plusOne(int[] digits) 
    	{
    		int len = digits.length;
    		int carry = 0;
    		digits[len-1] += 1;
    		if(digits[len-1] >= 10)
    		{
    			digits[len-1] = digits[len-1]-10;
    			carry = 1;
    		}
            for(int i = len-2; i >=0 ; i --)
            {
            	digits[i] += carry;
            	if(digits[i] >= 10)
            	{
            		digits[i] = digits[i] - 10;
            		carry = 1;
            	}
            	else
            	{
            		carry = 0;
            	}
            }
            if(carry == 1)
            {
            	int[] array = new int[len+1];
            	for(int i = len; i > 0; i --)
            	{
            		array[i] = digits[i-1];
            	}
            	array[0] = 1;
            	return array;
            }
            else
            {
            	return digits;
            }
        }
    	
    	public int[] plusOne2(int[] digits) 
    	{
    		int n = digits.length;
    		for(int i = n-1; i >=0; i --)
    		{
    			if(digits[i] < 9)
    			{
    				digits[i]++;
    				return digits;
    			}
    			digits[i] = 0;
    		} 
    		int[] array = new int[n+1];
    		array[0] = 1;
    		return array;
    	}
    }
    
  • 相关阅读:
    hibernate03增删改查
    hibernate02环境的搭建
    hibernate01ORM的引入
    20170623_oracle_优化与体系结构
    20170626_oracle_数据库设计
    logging模块
    hashlib模块
    json和pickle模块
    sys模块
    os模块
  • 原文地址:https://www.cnblogs.com/masterlibin/p/5777104.html
Copyright © 2011-2022 走看看