Leetcode 384. Shuffle an Array (Medium) (cpp)

来源:互联网 发布:手机调色软件 编辑:程序博客网 时间:2024/06/05 23:54

Leetcode 384. Shuffle an Array (Medium) (cpp)

Difficulty: Medium


/*384. Shuffle an Array (Medium)Shuffle a set of numbers without duplicates.Example:// Init an array with set 1, 2, and 3.int[] nums = {1,2,3};Solution solution = new Solution(nums);// Shuffle the array [1,2,3] and return its result. Any permutation of [1,2,3] must equally likely to be returned.solution.shuffle();// Resets the array back to its original configuration [1,2,3].solution.reset();// Returns the random shuffling of array [1,2,3].solution.shuffle();*/class Solution {public:vector<int> original, shuffled;Solution(vector<int> nums) {original = nums;shuffled = nums;}/** Resets the array to its original configuration and return it. */vector<int> reset() {return original;}/** Returns a random shuffling of the array. */vector<int> shuffle() {for (int i = 0; i < shuffled.size(); i++) {int index = rand() % (shuffled.size() - i);swap(shuffled[i], shuffled[index + i]);}return shuffled;}};/*** Your Solution object will be instantiated and called as such:* Solution obj = new Solution(nums);* vector<int> param_1 = obj.reset();* vector<int> param_2 = obj.shuffle();*/


0 0
原创粉丝点击