0
点赞
收藏
分享

微信扫一扫

水塘抽样及LeetCode398题随机数索引

骨灰级搬砖工 2022-04-25 阅读 41

水塘抽样

Leetcode398题随机数索引 

代码 

typedef struct {
int *nums;
int numsSize;
} Solution;


Solution* solutionCreate(int* nums, int numsSize) {
Solution *obj = (Solution *)malloc(sizeof(Solution));
obj->nums = nums;
obj->numsSize = numsSize;
return obj;
}

int solutionPick(Solution* obj, int target) {
int ans;
for (int i = 0, cnt = 0; i < obj->numsSize; ++i) {
if (obj->nums[i] == target) {
++cnt;
if (rand() % cnt == 0) {
ans = i;
}
}
}
return ans;
}

void solutionFree(Solution* obj) {
free(obj->nums);
free(obj);

}
举报

相关推荐

0 条评论