5509 避免重複字母的最小刪除成本

2021-10-24 09:16:09 字數 1189 閱讀 7669

題目描述:

給你乙個字串s和乙個整數陣列cost,其中cost[i]是從s中刪除字元 i 的代價。

返回使字串任意相鄰兩個字母不相同的最小刪除成本。

請注意,刪除乙個字元後,刪除其他字元的成本不會改變。

示例 1:

輸入:s =

"abaac", cost =

[1,2,3,4,5]

輸出:3

解釋:刪除字母 "a" 的成本為 3,然後得到 "abac"(字串中相鄰兩個字母不相同)。

示例 2:

輸入:s =

"abc", cost =

[1,2,3]

輸出:0

解釋:無需刪除任何字母,因為字串中不存在相鄰兩個字母相同的情況。

示例 3:

輸入:s =

"aabaa", cost =

[1,2,3,4,1]

輸出:2

解釋:刪除第乙個和最後乙個字母,得到字串 (

"aba"

) 。

s.length == cost.length

1 <= s.length, cost.length <= 10^5

1 <= cost[i] <= 10^4

s中只含有小寫英文本母

解題思路:

如果採用當遇到相同的字元刪除除代價最大的字元以及字元的代價,時間複雜度耗時較長;

1)、採用的是tmp保留的每個字元的最大的價值cost

2)、ret記錄的是刪除字元的總代價;

3)、ret - tmp即為所求的結果 ;

**實現:

class

solution

if(i >-1

)}ret -

= tmp ;

return ret ;}}

;

避免建立重複的物件

避免建立重複的物件,如果乙個物件是不可變的,那麼它總是可一被重用 書中的例子 string s new string silly 這個為什麼不好?該語句每次被執行的時候都建立乙個新的string例項.string s silly 只使用乙個string例項 今年年初,專案組在進行專案優化的時候,遇到...

避免併發的重複請求 for Angular

在專案的實際開發中偶然遇到了相同的get請求被連續觸發的問題,典型用例如cms系統首頁開啟時導航欄需要載入欄目資料,頁面中的欄目列表也同樣請求該資料。當然,理想狀態下可以要求導航欄先載入並快取,然後其它元件從快取中獲取,然而實際上這些功能可能由不同的開發者編寫,那麼協調起來就麻煩一些了。而且越複雜的...

mysql刪除重複資料保留id最小(最大)的資料

如題 有person表 id email 1 a b.com 2 c d.com 3 a b.com 這類問題在資料庫的筆試題中經常會遇見,解題思路有兩個,一連線,二子查詢 連線 delete p1 from person p1,person p2 where p1.email p2.email a...