Leetcode 1846 - Maximum Element After Decreasing and Rearranging

題目

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)$