遍历一遍数组,每次随机一个下标与当前位置的数字交换。
另外,在循环里面声明变量蛮耗时间的,如果循环比较长的话。
private:
vector<int> resetNum,result;
int size;
public:
Solution(vector<int> nums) {
resetNum = nums;
result = nums;
size = nums.size();
srand(time(NULL));
}
/** Resets the array to its original configuration and return it. */
vector<int> reset() {
return resetNum;
}
/** Returns a random shuffling of the array. */
vector<int> shuffle() {
int tmp;
for(int i = 0 ;i<size ;i++){
int ran = rand()%size;
tmp = result[i];
result[i] = result[ran];
result[ran] = tmp;
}
return result;
}