描述需要改進 Leetcode No 68

2022-01-16 16:47:50 字數 1739 閱讀 8862

給定乙個單詞陣列和乙個長度 maxwidth,重新排版單詞,使其成為每行恰好有 maxwidth 個字元,且左右兩端對齊的文字。

你應該使用「貪心演算法」來放置給定的單詞;也就是說,盡可能多地往每行中放置單詞。必要時可用空格' '填充,使得每行恰好有 maxwidth 個字元。

要求盡可能均勻分配單詞間的空格數量。如果某一行單詞間的空格不能均勻分配,則左側放置的空格數要多於右側的空格數。

文字的最後一行應為左對齊,且單詞之間不插入額外的空格。

示例:

輸入:

words = ["this", "is", "an", "example", "of", "text", "justification."]

maxwidth = 16

輸出:[

"this    is    an",

"example  of text",

"justification.  "

]

示例 2:

輸入:

words = ["what","must","be","acknowledgment","shall","be"]

maxwidth = 16

輸出:[

"what   must   be",

"acknowledgment  ",

"shall be        "

]解釋: 注意最後一行的格式應為 "shall be " 而不是 "shall be",

因為最後一行應為左對齊,而不是左右兩端對齊。

第二行同樣為左對齊,這是因為這行只包含乙個單詞。

解答:這對應於office或者其他文件編輯器的排版方式,很有用途。

具體邏輯如下:

用向量len記錄各字串的長度;

令 sum = -1。若 sum += len 後 sum > maxwodth,則進行判斷,並插入第乙個字串;

若num == 0, 即只有乙個字串,用line來表示;否則計算 d = delta/num, p = delta%num;

插入line並置初始量

判斷最後一行,單詞間隔為' ',最後結尾需要加上間隔maxwidth - sum:

//

68vector fulljustify(vector& words, int

maxwidth)

for(i=0,curr=i;i)

string

line{};

line.insert(line.begin(),words[curr].begin(),words[curr].end());

if(num==0

) line.insert(line.end(),maxwidth-len[curr],'');

else

}res.push_back(line);

num = -1

; sum = -1

; swap(i,curr);

}sum = -1

;

if(curr;

for(;curr)

line.insert(line.end(),maxwidth-sum,'');

res.push_back(line.substr(

1));

}return

res;}//

68

Spark需要改進的點整理

1.主要還是記憶體問題 基於jvm的大資料程式都很難避開資源管理或者記憶體管理這個問題 a jvm的記憶體overhead太大,1g的資料通常需要消耗5g的記憶體 project tungsten 正試 決這個問題 最明顯的當然是記憶體需要太多,花錢太多。還有部署麻煩,能否一鍵安裝。執行過程中不要老...

我們真的需要服務描述嗎?

普遍認為,基於soap的web服務的主要複雜點之一是使用web服務描述語言 wsdl 進行服務介面的描述。william vambenepe指出wsdl的另一問題是,wsdl和隨之誕生的stub生成工具建立的分布式應用程式之間是緊密耦合的。人們開始意識到的是服務描述的問題,而不是如何改進它。u002...

JWFD開源專案需要改進的地方

這半年來,jwfd開源專案沒有發布新的 包和文件,而是在解答朋友們提出的很多問題,從這些問題中我發現jwfd在下面的方面還欠缺 和文件的支援,我會在接下來的時間內在這些方面加強工作,為朋友們提供更多資料和文件,用以支援朋友們與工作流相關的工作。1 jwfd的圖形介面的模組jgraph的二次開發使用說...