Problem#
給你一個正整數陣列 arr
問你能不能透過以下兩種操作變換成 [1,2,3,...,i-1, i]
的遞增形式:
- 對
arr[i]
減一,不能小於等於零 - 排列
arr[i]
以上操作可以做任意次,問經過操作後arr
滿足遞增形式的數字最多有幾個?
測資限制#
- $1 \le n \le 10^5$
- $1 \le arr[i] \le 10^9$
想法#
從 1 開始每次去二分搜,看能不能在 arr
中找到,如果有則答案加一,直到找不到,則結束。
AC Code#
- 時間複雜度: $\mathcal{O}(n\log{n})$
- 空間複雜度: $\mathcal{O}(1)$