看板 Marginalman 關於我們 聯絡資訊
3542. Minimum Operations to Convert All Elements to Zero 思路: 就用遞增monotonic stack 每次要把stack中比較大的數字pop出去時 答案都加1 然後遇到stack中一樣大的數字也要pop出去 不過答案就不用增加 最後再把答案加上stack裡剩下元素的個數 不過如果stack中有0的話 答案就要扣掉1 golang code : func minOperations(nums []int) int { stack := []int{} n, ans := len(nums), 0 for i := 0; i < n; i++ { for len(stack) > 0 && nums[i] <= stack[len(stack)-1] { a := stack[len(stack)-1] if nums[i] < a { ans++ } stack = stack[:len(stack)-1] } stack = append(stack, nums[i]) } ans += len(stack) if stack[0] == 0 { ans-- } return ans } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.121.235.241 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1762777617.A.7DD.html
oin1104: 屁眼 11/10 20:44