leetcode 5078 負二進位制數相加 C語言

2021-09-24 02:39:03 字數 649 閱讀 8301

/**

* 演算法思想:

* 先用快取將列加結果儲存起來,其中可能包括》=2的數字;

* 將其中不等於1或者0的,進行進製換算;

* >= 2時,進製-1;

* 等於-1是,將本位置為1,高一位+1

* */

void reve(int *arr, int len)

/* 將其中不等於1或者0的,進行進製換算;

* >= 2時,進製-1;

* 等於-1是,將本位置為1,高一位+1

*/for(i=0; i= 2)else if(ret[i] == -1)}}

/* 計算長度,從最高位開始,為0的都將len-- */

len = max+10;

for(i=max+10-1; i>=0; i--)

len--;

}/* 將結果反轉 */

reve(ret, len);

/* 判斷是否為全0 */

int flag1 = 0;

for(i=0; i}

/* 如果全部為0的話,將長度位置1 */

if(!flag1)

*returnsize = len;

return ret;

}

5078 負二進位制數相加

給出基數為 2的兩個數arr1和arr2,返回兩數相加的結果。數字以陣列形式給出 陣列由若干 0 和 1 組成,按最高有效位到最低有效位的順序排列。例如,arr 1,1,0,1 表示數字 2 3 2 2 2 0 3。陣列形式的數字也同樣不含前導零 以arr為例,這意味著要麼arr 0 要麼arr 0...

LeetCode 1018 可被5整除的二進位制字首

給定由若干 0 和 1 組成的陣列 a。我們定義 n i 從 a 0 到 a i 的第 i 個子陣列被解釋為乙個二進位制數 從最高有效位到最低有效位 返回布林值列表 answer,只有當 n i 可以被 5 整除時,答案 answer i 為 true,否則為 false。示例 1 輸入 0,1,1...

LeetCode 1018可被5整除的二進位制字首

給定由若干 0 和 1 組成的陣列 a。我們定義 n i 從 a 0 到 a i 的第 i 個子陣列被解釋為乙個二進位制數 從最高有效位到最低有效位 返回布林值列表 answer,只有當 n i 可以被 5 整除時,答案 answer i 為 true,否則為 false。示例 1 輸入 0,1,1...