Skip to content

384打乱数组

code

javascript
/**
 * @param {number[]} nums
 */
var Solution = function(nums) {
    this.initial = [...nums];
};

/**
 * @return {number[]}
 */
Solution.prototype.reset = function() {
    return this.initial;
};

/**
 * @return {number[]}
 */
Solution.prototype.shuffle = function() {
    let temp = [...this.initial];
    for(let i = temp.length - 1; i > 0; i--){
        let temp_random = Math.floor(Math.random() * (i + 1));
        [temp[i], temp[temp_random]] = [temp[temp_random], temp[i]];
    }
    return temp;
};
/** 
 * Your Solution object will be instantiated and called as such:
 * var obj = new Solution(nums)
 * var param_1 = obj.reset()
 * var param_2 = obj.shuffle()
 */

总结

  1. 基本上就是个洗牌算法,random互换
  2. 但是类对象类的不是那么好写其实
  3. random下标