給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存乙個數字。
你可以假設除了整數 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,...