美文网首页
Shuffle an Array

Shuffle an Array

作者: 我叫胆小我喜欢小心 | 来源:发表于2017-04-16 09:48 被阅读32次

题目来源
要求将一个数组随机打乱。
不会…
看了下答案,需要用到随机洗牌算法,介绍可以看这里
只需要从后往前遍历,每次随机从i中取一个数,放到后面。没有看具体怎么证明…现在就记住这样子是可以的吧…
代码如下:

class Solution {
public:
    Solution(vector<int> nums) {
        this->nums = nums;
    }
    
    /** Resets the array to its original configuration and return it. */
    vector<int> reset() {
        return nums;
    }
    
    /** Returns a random shuffling of the array. */
    vector<int> shuffle() {
        vector<int> res(nums);
        int n = res.size();
        for (int i=n-1; i>=0; i--) {
            int pos = rand() % (i + 1);
            swap(nums[pos], nums[i]);
        }
        return res;
    }
private:
    vector<int> nums;
};

/**
 * 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();
 */

相关文章

  • Shuffle an Array

    打乱一个没有重复元素的数组。 示例: // 以数字集合 1, 2 和 3 初始化数组。int[] nums = {...

  • Shuffle an Array

    题目来源要求将一个数组随机打乱。不会…看了下答案,需要用到随机洗牌算法,介绍可以看这里。只需要从后往前遍历,每次随...

  • 算法

    数组乱序 Array.prototype.shuffle = function () { var input =...

  • Leetcode - Shuffle an Array

    My code: 之前做 find K largest number in array 正好做过类似的。这道题目不...

  • GameplayKit

    1. It can shuffle an array. Like in the FlagGame, we want...

  • 2020-11-15-简单-1470. 重新排列数组

    题目链接:https://leetcode-cn.com/problems/shuffle-the-array/[...

  • JS实现两种洗牌算法

    1、常见的方法 - 使用Array.prototype.sort() knuth-shuffle洗牌算法

  • 1 - Easy - Shuffle an Array

    打乱一个没有重复元素的数组。 示例: // 以数字集合 1, 2 和 3 初始化数组。int[] nums = {...

  • 384. Shuffle an Array

    题目分析 原题链接,登录 LeetCode 后可用这道题目要求我们完善 shuffle 方法,将一个数组进行乱序操...

  • 384. Shuffle an Array

    Shuffle a set of numbers without duplicates. Example: 一刷题...

网友评论

      本文标题:Shuffle an Array

      本文链接:https://www.haomeiwen.com/subject/epxaattx.html