題目描述:
給你乙個字串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...