兩次過 Lintcode 407 加一

2021-08-20 17:45:15 字數 702 閱讀 7960

給定乙個非負數,表示乙個數字陣列,在該數的基礎上+1,返回乙個新的陣列。

該數字按照數字高低進行排列,最高位的數在列表的最前面。

給定[1,2,3]表示 123, 返回[1,2,4].

給定[9,9,9]表示 999, 返回[1,0,0,0].

一開始想到將陣列元素轉化為數字再加一,最後轉換到陣列,實現太複雜,而且時間與空間複雜度過高。

後來就是手動在陣列中實現加法,設定進製識別符號cnt,從尾至頭遍歷依次按位計算,最後要考慮9,99,999這類情況,如果加完後首位為0且cnt不為0表示需要再向前進一位,在首位之前插入cnt即可。

public class solution 

if(cnt == 0)else

}}

二刷:

public class solution 

if(cnt != 0)

list.add(cnt);

int res = new int[list.size()];

for(int i=list.size()-1; i>=0; i--)

res[list.size()-i-1] = list.get(i);

return res;

}}

兩次過 Lintcode 56 兩數之和

給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n 1。example1 給出 numbers 2,7,11,15 target 9,返回 0,1 example2 ...

兩次過 Lintcode 1209 構造矩形

對於乙個web開發者,如何設計頁面大小很重要。所以,給定乙個矩形大小,設計其長 l 寬 w 使其滿足如下要求 1.矩形區域大小需要和給定目標相等。2.寬度w不大於長度l,也即l w.3.長和寬的差異盡可能的小。返回設計好的長度l和寬度w。樣例 輸入 4 輸出 2,2 解釋 目標區域是4,所有可能的構...

兩次過 Lintcode 212 空格替換

設計一種方法,將乙個字串中的所有空格替換成 20。你可以假設該字串有足夠的空間來加入新的字元,且你得到的是 真實的 字元長度。你的程式還需要返回被替換後的字串的長度。對於字串 mr john smith 長度為13 替換空格之後,引數中的字串需要變為 mr 20john 20smith 並且把新長度...