384. Shuffle an Array [Leetcode]

利用swap+隨機數生成一個隨機的序列。

class Solution {
public:
    Solution(vector<int> nums) {
        srand(time(NULL));
        this->originalNums = nums;
        size = nums.size();
    }

    /** Resets the array to its original configuration and return it. */
    vector<int> reset() {
        return originalNums;
    }

    /** Returns a random shuffling of the array. */
    vector<int> shuffle() {
        vector<int> ShuffleNums(originalNums);
        for (int i = 0; i < size; i++) {
            swap(ShuffleNums[i], ShuffleNums[i + rand() % (size - i)]);
        }
        return ShuffleNums;
    }
private:
    vector<int> originalNums;
    int size;
};

/**
 * 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();
 */
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章