比如说给一个函数,参数是k,要求生成1-k的随机序列。
那么我的做法是先将nums置为1-k,再使用洗牌算法,将序列打乱。
vector<int> shuffle(int k)
{
vector<int> nums;
for(int i = 0;i<k;++i)
nums.push_back(i+1);
//洗牌
for(int i=nums.size()-1;i>=0;--i)
{
int pos = rand()%(i+1);//生成[0,i]之间的数
swap(nums[i],nums[pos]);//交换随机数和i的数字
}
return nums;
}