Appearance
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()
*/总结
- 基本上就是个洗牌算法,random互换
- 但是类对象类的不是那么好写其实
- random下标