Leetcode 2610 - Convert an Array Into a 2D Array With Conditions

題目

Problem#

給你一個整數陣列 nums 你要把它根據以下規則排成一個二維陣列回傳。

  • 陣列的每列元素皆不重複
  • 列的數量應越少越好

如果有多組解則回傳任一一種即可

測資限制#

  • $1 \le n \le 200$
  • $1 \le val \le n$

想法#

先統計每個數字的出現次數,接著再從小到大依序加到新的一列中,每次加進陣列中,出現次數都扣一,如果出現次數小於等於 $0$ 則將該數字去除統計出現次數的表,如此下去直到所有數字都跑完為止。

因為列的數量要最少,所以每列都盡可能的加滿

AC Code#

  • 時間複雜度: $\mathcal{O}(n^2)$
  • 空間複雜度: $\mathcal{O}(n)$