LeetCode 384 打亂陣列

2022-09-20 09:00:12 字數 639 閱讀 4472

leetcode 384 打亂陣列

題目大意:

給你乙個整數陣列\(nums\),設計演算法來打亂乙個沒有重複元素的陣列。打亂後,陣列的所有排列應該是等可能的。

題解:

參考自leedcode官方題解

首先,我們考慮如何隨機打亂乙個陣列。

不妨設陣列\(nums\),其長度為\(n\)。我們可以使用如下方法打亂:

對於原陣列\(nums\)中的數\(num\)來說,被移動到打亂後的陣列的第\(i\)個位置的概率為:

\[p[i]=

\left\

(\frac \times \frac \times ... \times \frac) \times \frac = \frac, i>0 \\

\frac, i = 0

\end

\right.

\]因此,對於原陣列\(nums\)中的任意乙個數,被移動到打亂後的陣列的任意乙個位置的概率都是相同的。

class solution 

vectorreset()

vectorshuffle()

return nums;

}};

LeetCode 384 打亂陣列

打亂乙個沒有重複元素的陣列。示例 以數字集合 1,2 和 3 初始化陣列。int nums solution solution new solution nums 打亂陣列 1,2,3 並返回結果。任何 1,2,3 的排列返回的概率應該相同。solution.shuffle 重設陣列到它的初始狀態 ...

Leetcode 384 打亂陣列

打亂乙個沒有重複元素的陣列。示例 以數字集合 1,2 和 3 初始化陣列。int nums solution solution new solution nums 打亂陣列 1,2,3 並返回結果。任何 1,2,3 的排列返回的概率應該相同。solution.shuffle 重設陣列到它的初始狀態 ...

LeetCode 384 打亂陣列

題目 打亂乙個沒有重複元素的陣列。示例 以數字集合 1,2 和 3 初始化陣列。int nums solution solution new solution nums 打亂陣列 1,2,3 並返回結果。任何 1,2,3 的排列返回的概率應該相同。solution.shuffle 重設陣列到它的初始...