LeetCode 384 打亂陣列

2021-09-19 23:48:02 字數 908 閱讀 5980

打亂乙個沒有重複元素的陣列。

示例:

// 以數字集合 1, 2 和 3 初始化陣列。

int nums = ;

solution solution = new solution(nums);

// 打亂陣列 [1,2,3] 並返回結果。任何 [1,2,3]的排列返回的概率應該相同。

solution.shuffle();

// 重設陣列到它的初始狀態[1,2,3]。

solution.reset();

// 隨機返回陣列[1,2,3]打亂後的結果。

solution.shuffle();

此題的關鍵是要保證概率是隨機分布的。在實現shuffle函式時,遍歷陣列,在遍歷到的當前位置以及之後的範圍中,隨機選乙個位置,然後交換這兩個位置的元素。當遍歷陣列結束後,也就完成了陣列的打亂。

class solution 

/** resets the array to its original configuration and return it. */

vectorreset()

/** returns a random shuffling of the array. */

vectorshuffle()

return res;

}};/**

* your solution object will be instantiated and called as such:

* solution obj = new solution(nums);

* vectorparam_1 = obj.reset();

* vectorparam_2 = obj.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 重設陣列到它的初始...

LeetCode 384 打亂陣列

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