題目
簡介135. candy
貪心1249. minimum remove to make valid parentheses
代替棧操作
一行有n個小孩,每個小孩有個「分數」。有兩個規則:這個題用貪心的方法做。1)每個小孩至少有一顆糖
2)如果乙個小孩比旁邊小孩分高,則糖也要比他多。
input: [1,0,2],output: 5
explanation: you can allocate to the first, second and third child with 2, 1, 2 candies respectively.
思路(抄自woibu):初始化所有小孩糖數目為1,
該演算法時間複雜度為o(n)。之所以兩次掃瞄,即可達成要求,是因為:
class
solution
}//scan from right to left(保證每一點比他右邊candy更多)
for(
int i = n -
1; i >
0; i--)}
int sum =0;
for(
int res : result)
return sum;
}}
只含"(",")", 小寫字母的字串,求去掉盡量少的括號,可以使得餘下的字串valid。返回任意有效組合。直覺:括號總是想到用棧,遇到"(「入棧,遇到」)「就一直pop直到」("出棧……valid定義為:
1)it is the empty string, contains only lowercase characters,
2)or it can be written as ab (a concatenated with b), where a and b are valid strings,
3)or it can be written as (a), where a is a valid string.
input: s = 「lee(t(c )o)de)」
output: 「lee(t(c )o)de」
explanation: 「lee(t(co )de)」 , 「lee(t(c )ode)」 would also be accepted.
為啥不這樣做呢?一方面使用了額外的memory,另一方面最關鍵的,是這個題不是「判斷」是否合法,而是要去掉某些括號only,原來的字串保持不變。從棧**來是逆序的,還要額外調整順序。
想到乙個改進,棧只存放括號的下標,把invalid的括號的下標記下來,最後再從頭掃一遍原字串,把invalid括號去掉就好。
//solution 1:use stack for parentheses indexes
class
solution
else
if(chars[i]
==')'
)else}}
while
(!stack.
isempty()
)
stringbuilder sb =
newstringbuilder()
;for
(int i =
0; i < s.
length()
; i++
) sb.
(chars[i]);
}return sb.
tostring()
;}}
如果不使用棧,只用「左括號用了幾個」來代替,也可以。左右各掃一遍。大致思路是:
具體的資料結構,還是要用兩個stringbuilder。 go right放進sb1,go left再捯進sb2,作為最終輸出。
我覺得兩種方法思路差不多,純粹為了作為「可以使用左右各掃一遍的方法」的乙個?,生硬地放在這裡吧哈哈。
class
solution
stringbuilder sb =
newstringbuilder()
;int left =0;
for(
char ch : s.
tochararray()
)else
if(ch ==
')')
left--;}
sb.(ch);}
//what if you got more '(' than needed
stringbuilder res =
newstringbuilder()
;for
(int i = sb.
length()
-1; i >=
0; i--
) res.
(c);
}return res.
reverse()
.tostring()
;}}
掃一掃 移動端 掃一掃移動端車牌識別
車牌區域在整幅影象中所佔比例很小,車牌的顏色 大小 位置也不確定,並且定位演算法要能夠克服不同光照和複雜背景的影響,還要兼顧準確性和實時性,因此快速準確的定位車牌是比較困難的。移動端掃一掃車牌,識別出車牌號的技術功能 1.識別車牌種類多 藍牌 黃牌 掛車號牌 新軍牌 警牌 新武警車牌 教練車牌 大使...
WEBAPI 微信掃一掃
public class wxcontroller apicontroller 傳送模板訊息內容 獲取請求返回內容 生成隨機字串 目標字串的長度 是否包含數字,1 包含,預設為包含 是否包含小寫字母,1 包含,預設為包含 是否包含大寫字母,1 包含,預設為包含 是否包含特殊字元,1 包含,預設為不包...
一屋不掃何以掃天下
幾天前,舉辦了一場關於後勤的會議,感受頗深。但是由於最近比較忙,沒能來得及總結這篇部落格。現在我來講一下會議的感受。之前一直感覺各個屋子都十分乾淨了,但是那天大掃除動用了4個組幾十號人,比計畫中多了許多。為什麼對多出這些人來打掃,原因是想要把乙個簡單的小事做到極致。而且老師帶領打掃了最最不易清理的地...