LeetCode:Plus One - 数字加一

1、题目名称

Plus One(数字加一)

2、题目地址

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

3、题目内容

英文: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.

中文:给出一个由整型数组表示的非负数字,将这个数字加一。数组中的各元素表示该数字的各位,越靠前的元素权越大。

4、解题方法

本题的解题思路,就是模拟现实中做加法的方式,在个位加一,并考虑进位的情况。Java代码如下:

/**
 * 功能说明:LeetCode 66 - Plus One
 * 开发人员:Tsybius2014
 * 开发时间:2015年9月17日
 */
public class Solution {
    
    /**
     * 数字加1
     * @param digits 数字
     * @return 数字加一后的值
     */
    public int[] plusOne(int[] digits) {
        
        //数字加一
        boolean carryFlag = false;
        digits[digits.length - 1]++;
        for (int i = digits.length - 1; i >= 0; i--) {
            digits[i] = digits[i] + (carryFlag ? 1 : 0);
            if (digits[i] >= 10) {
                carryFlag = true;
                digits[i] -= 10;
            } else {
                carryFlag = false;
                break;
            }
        }
        
        //判断是否有溢出位
        if (carryFlag) {
            int[] result = new int[digits.length + 1];
            result[0] = 1;
            for (int i = 1; i < result.length; i++){
                result[i] = digits[i - 1];
            }
            return result;
        } else {
            return digits;
        }
    }
}

END

时间: 2024-12-25 12:41:17

LeetCode:Plus One - 数字加一的相关文章

小巧实用的数字加减插件(jquery插件)

自己的第一个jquery插件,规模虽然不大,但是小成就满满,对jquery又有了更进一步的认识. 简单实用的数字加减插件,实现通过加减按钮对文本框内的数字进行增减操作. 效果图: 参数: 默认值.最大值.最小值.增减度. 可单独对每个input设置参数,也可以对所有input统一设置.参考代码在下方: 使用方法: 1.引用css.js文件(记得引用jquery.min.js) 2.前台: 2.1无参数 <input type="text" class="numberTe

两种方法解决数字加千分位问题(没考虑负数和小数)

问题描述:数字加千分位:要求用户输入一个整数,编写一个方法,方法将将整数转换为一个从低位开始每三位一个逗号的“千分位”字符串表示形式. //正向解法 package ThirdTest;import java.util.Scanner;public class No2{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int num=sc.nextInt(); thousand(num); s

数字加网(二)— —调幅加网算法及实现

在上一篇中提到调幅加网的方法有有理正切.无理正切和超细胞方法.无理正切方法,与有理正切本质相同,但是因为正切值为无理数,不能保证网格的角点与输出设备记录栅格的角点重合,需要进行一个强制重合的过程,一般数字加网方法里对其讨论较少.而超细胞的方法相当于外面一个大的阈值矩阵是有理正切,里面若干小的阈值矩阵是无理正切的.下图分别是有理正切和超细胞方法. 上段提到阈值矩阵,如下图,其实也可以叫做蒙板或者窗口,即在待加网的图像上"走"一圈下来(扫描整幅图像),当前像素值比阈值矩阵中相对应的值大,则

iOS 每三个数字加一个逗号

//每三个数字加一个逗号 : 123,234,324 + (NSString *)countNumAndChangeformat:(NSString *)num { int count = 0; long long int a = num.longLongValue; while (a != 0) { count++; a /= 10; } NSMutableString *string = [NSMutableString stringWithString:num]; NSMutableStr

数字加网(三)— —调频加网算法及实现

数字加网(一)- -概念及分色合成 数字加网(二)- -调幅加网算法及实现 数字加网(三)- -调频加网算法及实现 调频加网算法主要是抖动法与误差扩散法,前者又可以分为有序抖动和无序抖动,是点过程:后者是相邻过程. 有序抖动算法 Bayer抖动算法 算法公式 最具代表性的有序抖动算法,是1973年Bayer提出的Bayer算法,其递推公式如下: 令D1=0,n=2可以求出抖动矩阵 然后就可以继续推导出D4的抖动矩阵,推导过程如下 同理,我们可以推出D8的抖动矩阵 [注]一般处理采用D8的抖动矩阵

jQuery实现购物车数字加减效果

效果图: jQuery实现购物车数字加减效果,方法本简单. 经常会写到购物车这块,而购物车很多就有加减这个效果(可以将HTML代码复制多个,同时支持),小小的总结了一下,代码如下: HTML: <div class="gw_num"> <em class="jian">-</em> <input type="text" value="1" class="num"/&

处理一个数字加小数点的字符串

/* * 处理一个数字加小数点的字符串,前面无0,保留两位.网上有循环截取的方法,如果数字过长,浪费内存,这个方法在优化内存的基础上设计的. */ -(NSString*)getTheCorrectNum:(NSString*)tempString { //先判断第一位是不是 . ,是 . 补0 if ([tempString hasPrefix:@"."]) { tempString = [NSString stringWithFormat:@"0%@",temp

自定义数字加减控件

1_自定义数字加减控件的要求 创建Module -NumberAddSubView A_输入的只能是数字,而且不能通过键盘输入 B_通过加减按钮操作数字 C_监听加减按钮 D_数组有最小值和最大值的限制 E_自定义属性 2.提供接口,让外界监听到数字的变化 1_设置接口 @Override public void onClick(View v) { if (v.getId() == R.id.btn_sub) { //Toast.makeText(mContext,"减",Toast.

jQuery数字加减插件

我们在网上购物提交订单时,在网页上一般会有一个选择数量的控件,要求买家选择购买商品的件数,开发者会把该控件做成可以通过点击实现加减等微调操作,当然也可以直接输入数字件数.本文将介绍常见的几种使用spinner数字微调器来实现数字加减的功能的方法. 左右加减数字 像京东提交订单时目前使用的是左右加减数字的效果,这个效果直接明了,操作简单.我们使用jquery.spinner.js插件实现左右加减数字,调用方法非常简单,请看演示示例1.   <input type="text" cl