摘要:題目要求一個(gè)非負(fù)整數(shù)被表示為一個(gè)數(shù)組,數(shù)組中每一個(gè)元素代表該整數(shù)的一個(gè)位。數(shù)組的下標(biāo)越小,代表的位數(shù)越高?,F(xiàn)在對(duì)該數(shù)組做加一運(yùn)算,請(qǐng)返回結(jié)果數(shù)組。
題目要求:一個(gè)非負(fù)整數(shù)被表示為一個(gè)數(shù)組,數(shù)組中每一個(gè)元素代表該整數(shù)的一個(gè)位。數(shù)組的下標(biāo)越小,代表的位數(shù)越高?,F(xiàn)在對(duì)該數(shù)組做加一運(yùn)算,請(qǐng)返回結(jié)果數(shù)組。
/** * @author rale * * 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 the head of the list. */ public class PlusOne { public int[] plusOne(int[] digits) { //此處可以直接將carry(進(jìn)位)設(shè)置為1,優(yōu)化程序 //carry = 0 //digits[digits.length-1] += 1 ; int carry = 1; int temp = 0; for(int i=digits.length-1 ; i>=0 ; i--){ temp = digits[i] + carry; digits[i] = temp%10; carry = temp/10; } if(carry>0){ int[] result = new int[digits.length+1]; result[0] = 1; for(int j = 1 ; j繼續(xù)優(yōu)化
只有當(dāng)需要進(jìn)位的時(shí)候,加法才需要繼續(xù)下去,否則加法則可以在當(dāng)前位停止。
可以在循環(huán)中添加判斷,若carry==0,則提前跳出循環(huán)/** * @author rale * * 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 the head of the list. */ public class PlusOne { public int[] plusOne(int[] digits) { //此處可以直接將carry(進(jìn)位)設(shè)置為1,優(yōu)化程序 //carry = 0 //digits[digits.length-1] += 1 ; int carry = 1; int temp = 0; for(int i=digits.length-1 ; i>=0 ; i--){ temp = digits[i] + carry; digits[i] = temp%10; carry = temp/10; if(carry==0){ break } } if(carry>0){ int[] result = new int[digits.length+1]; result[0] = 1; for(int j = 1 ; j再再再次優(yōu)化
此處優(yōu)化最高位進(jìn)位的情況
最高位出現(xiàn)進(jìn)位,當(dāng)且僅當(dāng)其他位都產(chǎn)生進(jìn)位且為0
優(yōu)化后的代碼如下/** * @author rale * * 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 the head of the list. */ public class PlusOne { public int[] plusOne(int[] digits) { int carry = 1; int temp = 0; for(int i=digits.length-1 ; i>=0 ; i--){ temp = digits[i] + carry; digits[i] = temp%10; carry = temp/10; } if(carry>0){ int[] result = new int[digits.length+1]; result[0] = 1; // 最高位進(jìn)位的情況只有一種,即其它位均進(jìn)位且為0,無需再循環(huán)一次 // for(int j = 1 ; j
想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號(hào)!將會(huì)不定期的發(fā)放福利哦~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66834.html
摘要:作者碼蹄疾畢業(yè)于哈爾濱工業(yè)大學(xué)。最高位數(shù)字存放在數(shù)組的首位,數(shù)組中每個(gè)元素只存儲(chǔ)一個(gè)數(shù)字。你可以假設(shè)除了整數(shù)之外,這個(gè)整數(shù)不會(huì)以零開頭。示例輸入輸出解釋輸入數(shù)組表示數(shù)字。 作者: 碼蹄疾畢業(yè)于哈爾濱工業(yè)大學(xué)。 小米廣告第三代廣告引擎的設(shè)計(jì)者、開發(fā)者;負(fù)責(zé)小米應(yīng)用商店、日歷、開屏廣告業(yè)務(wù)線研發(fā);主導(dǎo)小米廣告引擎多個(gè)模塊重構(gòu);關(guān)注推薦、搜索、廣告領(lǐng)域相關(guān)知識(shí); 題目 給定一個(gè)由整數(shù)組成的非...
摘要:作者碼蹄疾畢業(yè)于哈爾濱工業(yè)大學(xué)。最高位數(shù)字存放在數(shù)組的首位,數(shù)組中每個(gè)元素只存儲(chǔ)一個(gè)數(shù)字。你可以假設(shè)除了整數(shù)之外,這個(gè)整數(shù)不會(huì)以零開頭。示例輸入輸出解釋輸入數(shù)組表示數(shù)字。 作者: 碼蹄疾畢業(yè)于哈爾濱工業(yè)大學(xué)。 小米廣告第三代廣告引擎的設(shè)計(jì)者、開發(fā)者;負(fù)責(zé)小米應(yīng)用商店、日歷、開屏廣告業(yè)務(wù)線研發(fā);主導(dǎo)小米廣告引擎多個(gè)模塊重構(gòu);關(guān)注推薦、搜索、廣告領(lǐng)域相關(guān)知識(shí); 題目 給定一個(gè)由整數(shù)組成的非...
摘要:作者碼蹄疾畢業(yè)于哈爾濱工業(yè)大學(xué)。最高位數(shù)字存放在數(shù)組的首位,數(shù)組中每個(gè)元素只存儲(chǔ)一個(gè)數(shù)字。你可以假設(shè)除了整數(shù)之外,這個(gè)整數(shù)不會(huì)以零開頭。示例輸入輸出解釋輸入數(shù)組表示數(shù)字。 作者: 碼蹄疾畢業(yè)于哈爾濱工業(yè)大學(xué)。 小米廣告第三代廣告引擎的設(shè)計(jì)者、開發(fā)者;負(fù)責(zé)小米應(yīng)用商店、日歷、開屏廣告業(yè)務(wù)線研發(fā);主導(dǎo)小米廣告引擎多個(gè)模塊重構(gòu);關(guān)注推薦、搜索、廣告領(lǐng)域相關(guān)知識(shí); 題目 給定一個(gè)由整數(shù)組成的非...
摘要:題目描述給定一個(gè)由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。最高位數(shù)字存放在數(shù)組的首位,數(shù)組中每個(gè)元素只存儲(chǔ)一個(gè)數(shù)字。你可以假設(shè)除了整數(shù)之外,這個(gè)整數(shù)不會(huì)以零開頭。示例輸入輸出解釋輸入數(shù)組表示數(shù)字。 題目描述 給定一個(gè)由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。 最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個(gè)元素只存儲(chǔ)一個(gè)數(shù)字。 你可以假設(shè)除了整數(shù) 0 之外,這個(gè)...
閱讀 1103·2021-11-24 09:39
閱讀 1338·2021-11-18 13:18
閱讀 2511·2021-11-15 11:38
閱讀 1854·2021-09-26 09:47
閱讀 1658·2021-09-22 15:09
閱讀 1653·2021-09-03 10:29
閱讀 1544·2019-08-29 17:28
閱讀 2976·2019-08-29 16:30