go語(yǔ)言題解LeetCode66加一示例詳解
題目描述
原題鏈接 :
給定一個(gè)由 整數(shù) 組成的 非空 數(shù)組所表示的非負(fù)整數(shù),在該數(shù)的基礎(chǔ)上加一。
最高位數(shù)字存放在數(shù)組的首位, 數(shù)組中每個(gè)元素只存儲(chǔ)單個(gè)數(shù)字。
你可以假設(shè)除了整數(shù) 0 之外,這個(gè)整數(shù)不會(huì)以零開(kāi)頭。
示例 1:
輸入:digits = [1,2,3] 輸出:[1,2,4] 解釋:輸入數(shù)組表示數(shù)字 123。
示例 2:
輸入:digits = [4,3,2,1] 輸出:[4,3,2,2] 解釋:輸入數(shù)組表示數(shù)字 4321。
示例 3:
輸入:digits = [0] 輸出:[1]
提示:
1 <= digits.length <= 100
0 <= digits[i] <= 9
思路分析
對(duì)于一般的數(shù)字,直接在末位加一即可,
本題特殊的兩個(gè)點(diǎn):
若加一之后的值為10,需要進(jìn)一位
若數(shù)字為類似999 ,加一之后需要多一位數(shù)。使用insert()來(lái)實(shí)現(xiàn), insert函數(shù) : vec.insert(begin()+i ,a) 在第i個(gè)元素插入a
AC 代碼
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int size = digits.size();
if(digits[size-1] != 9) //若末位不等于9,正常加一
{
++digits[size-1];
}
else //若末位等于9,加一等于0
{
digits[size-1] = 0;
for(int i = size - 1; i >0; --i) //若加完一后若等于0,下一位要進(jìn)一 如869
{
if(digits[i] == 0)
{
digits[i-1] = (digits[i-1] + 1) % 10;
}
else
break; //若某一位是數(shù)不需要進(jìn)一,跳出循環(huán)
}
if(digits[0] == 0) //若到最后最高位也等于0,需要多一位數(shù) 如99 + 1 此時(shí)為答案為00,進(jìn)行一下操作
{
digits.insert(digits.begin(),1); //在最高位插入1
}
}
return digits;
}
};
小結(jié)
題目不長(zhǎng),但是還是有點(diǎn)拗口的感覺(jué),首先要先弄明白題意,然后正常的思路下考慮進(jìn)位的溢出等就可以解出來(lái)。
JavaScript 66題
代碼
/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function(digits) {
//先遍歷 從右向左
for(let i = digits.length-1;i>=0;i--){
if(digits[i] !==9){
digits[i]++
return digits;
}else{
// 是 9
digits[i] = 0
}
}
let result = [1,...digits];
/* let result = [1].concat(digits);
digits.unshift(1);
*/
return result;
};
python3 循環(huán)判斷
分析:
這是一道基礎(chǔ)的屬組倒序查找的問(wèn)題,唯一需要關(guān)注的就是類似[9,9]的場(chǎng)景,循環(huán)后需要看是否需要進(jìn)位。
如果需要進(jìn)位,則在數(shù)組0位置插入1,才能保證接過(guò)的正確性。
class Solution:
def plusOne(self, digits):
count = 1
for i in range(len(digits) - 1, -1, -1):
count, digits[i] = divmod(digits[i] + count, 10)
if count == 0:
break
if count:
digits.insert(0,count)
return digitsJAVA解決進(jìn)位問(wèn)題
解題思路
倒著看,不為9,直接加1,返回:為9的話,需要進(jìn)位,變成0即可;
特殊情況 9 99 等,一直為9的,結(jié)果肯定是10 ,100 數(shù)組長(zhǎng)度加1 ,首位為1
代碼
class Solution {
public int[] plusOne(int[] digits) {
int length = digits.length;
// 最后一個(gè)不為九的數(shù)加1,為九的變0,9 99 單獨(dú)處理
for (int i = length - 1; i >= 0; i--) {
if(digits[i] != 9){
digits[i] = digits[i] + 1;
return digits;
}else {
digits[i] = 0;
}
}
int[] ints = new int[length + 1];
ints[0] = 1;
return ints;
}
}
以上就是go語(yǔ)言題解LeetCode66加一示例詳解的詳細(xì)內(nèi)容,更多關(guān)于go題解LeetCode66加一的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Go語(yǔ)言題解LeetCode1266訪問(wèn)所有點(diǎn)的最小時(shí)間示例
- go語(yǔ)言題解LeetCode1275找出井字棋的獲勝者示例
- go語(yǔ)言題解LeetCode1299將每個(gè)元素替換為右側(cè)最大元素
- go語(yǔ)言題解LeetCode88合并兩個(gè)有序數(shù)組示例
- Go語(yǔ)言題解LeetCode35搜索插入位置示例詳解
- go語(yǔ)言題解LeetCode228匯總區(qū)間示例詳解
- go語(yǔ)言題解LeetCode453最小操作次數(shù)使數(shù)組元素相等
- Go語(yǔ)言題解LeetCode1260二維網(wǎng)格遷移示例詳解
相關(guān)文章
基于golang中container/list包的用法說(shuō)明
這篇文章主要介紹了基于golang中container/list包的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
深入探索Go語(yǔ)言中的高效數(shù)據(jù)結(jié)構(gòu)堆
堆,作為一種基本的數(shù)據(jù)結(jié)構(gòu),以其在優(yōu)先隊(duì)列和排序算法中提供高效解決方案的能力而聞名。在本文中,我們將深入探討堆的內(nèi)部工作原理,包括其特性、實(shí)現(xiàn)細(xì)節(jié)以及在現(xiàn)代編程中的應(yīng)用2008-06-06
解決Golang小數(shù)float64在實(shí)際工程中加減乘除的精度問(wèn)題
這篇文章主要介紹了解決Golang小數(shù)float64在實(shí)際工程中加減乘除的精度問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
GO中?分組聲明與array,?slice,?map函數(shù)
這篇文章主要介紹了GO中?分組聲明與array,slice,map函數(shù),Go語(yǔ)言中,同時(shí)聲明多個(gè)常量、變量,或者導(dǎo)入多個(gè)包時(shí),可采用分組的方式進(jìn)行聲明,下面詳細(xì)介紹需要的小伙伴可以參考一下2022-03-03
詳細(xì)介紹Go語(yǔ)言之?dāng)?shù)組與切片
這篇文章介紹Go語(yǔ)言之?dāng)?shù)組與切片,數(shù)組是具有相同唯一類型的一組已編號(hào)且長(zhǎng)度固定的數(shù)據(jù)項(xiàng)序列,這種類型可是任意的原始類型如整形、字符串或自定義類型。切片是數(shù)組的一個(gè)引用,因此切片是引用類型,在進(jìn)行傳遞時(shí),遵守引用傳遞的機(jī)制,下面我們就來(lái)詳細(xì)了解一下該內(nèi)容2021-10-10
Go語(yǔ)言同步等待組sync.WaitGroup結(jié)構(gòu)體對(duì)象方法詳解
這篇文章主要為大家介紹了Go語(yǔ)言同步等待組sync.WaitGroup結(jié)構(gòu)體對(duì)象方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Go語(yǔ)言轉(zhuǎn)換所有字符串為大寫(xiě)或者小寫(xiě)的方法
這篇文章主要介紹了Go語(yǔ)言轉(zhuǎn)換所有字符串為大寫(xiě)或者小寫(xiě)的方法,實(shí)例分析了ToLower和ToUpper函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02

