
func minOperations(nums []int) (ans int) {
stack := make([]int, 0, len(nums))
for _, num := range nums {
for len(stack) > 0 && stack[len(stack) - 1] > num {
stack = stack[:len(stack) - 1]
}
if num == 0 {
continue
}
if len(stack) == 0 || stack[len(stack) - 1] < num {
ans++
stack = append(stack, num)
}
}
return
}