leetcode 66 加一(C語言)

2021-09-09 06:51:15 字數 1681 閱讀 9565

給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。

最高位數字存放在陣列的首位, 陣列中每個元素只儲存乙個數字。

你可以假設除了整數 0 之外,這個整數不會以零開頭。

示例 1:

輸入: [1,2,3]

輸出: [1,2,4]

解釋: 輸入陣列表示數字 123。

示例 2:

輸入: [4,3,2,1]

輸出: [4,3,2,2]

解釋: 輸入陣列表示數字 4321。

執行結果:0ms,擊敗100%的使用者

**提交框要求:

/**

* return an array of size *returnsize.

* note: the returned array must be malloced, assume caller calls free().

*/

#include

#include

int*

plusone

(int

* digits,

int digitssize,

int* returnsize)

//returnsize是乙個數,何必傳位址?

if(count == digitssize)

*returnsize = digitssize +1;

else

*returnsize = digitssize;

ret_array =

(int*)

malloc

(*returnsize *

sizeof

(int))

;//複製陣列

if(digitssize ==

*returnsize)

//如果輸入輸出陣列長度相等,則對應位相複製

}else

//如果輸入輸出陣列長度不等,錯位賦值,另第一位為1

}//自己實現加法的思路如下

//定義flag=1

//從最後一位開始,如果flag=1,則這一位加1

//讓flag=0

//(現在)如果這一位是10,則flag=1,這一位歸0

flag =1;

for(i =

*returnsize -

1; i >=

0; i--

) flag =0;

if(*(ret_array + i)

==10)}

return ret_array;

}int

main()

;//原陣列

int*array;

//用於接收函式返回的指標

int returnsize =10;

//返回陣列的大小(給定)

array =

plusone

(digits,9,

&returnsize)

;//函式呼叫

//輸出返回的陣列

for(i =

0; i < returnsize; i++

)system

("pause");

}

LeetCode 66 加一 簡單

給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 digits 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 digits 4...

LeetCode 66 加一(簡單)

一 原題 給定乙個由 整數 組成的 非空 陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 digits 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入...

leetcode 66 加一 有趣

給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2,1 輸出 4,3,...