アプリ版:「スタンプのみでお礼する」機能のリリースについて

typedef struct {
int * original;
int * nums;
int size;
} Solution;


Solution* solutionCreate(int* nums, int numsSize) {
Solution * result = (Solution *)malloc(sizeof(Solution));
result->original = (int *)malloc(numsSize*sizeof(int));
result->nums = (int *)malloc(numsSize*sizeof(int));
result->size = numsSize;
memcpy(result->original, nums, numsSize*sizeof(int));
memcpy(result->nums, nums, numsSize*sizeof(int));
return result;
}

int* solutionReset(Solution* obj, int* retSize) {
*retSize = obj->size;
memcpy(obj->nums, obj->original, obj->size*sizeof(int));
return obj->original;
}

int* solutionShuffle(Solution* obj, int* retSize) {
*retSize = obj->size;
for(int i = 0; i < obj->size; i++)
{
int temp = obj->nums[i];
int pos = rand() % obj->size;
obj->nums[i] = obj->nums[pos];
obj->nums[pos] = temp;
}
return obj->nums;
}

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



この問題を1から10まで事細かく解説してもらえませんか?まだポインタをあまり理解して追わず自力では理解できません。教えてくださる方がいればよろしくお願いします。

A 回答 (1件)

>leetcode384 c言語


これですかね→ https://leetcode.ca/all/384.html
“Shuffle a set of numbers without duplicates.”

ネット検索で調べると、質問のプログラムより簡単なコードが見つかるのでそちらを参考にしては。
https://www.bing.com/search?q=c%E8%A8%80%E8%AA%9 …

質問文のコードでなければダメな理由があれば別ですが。
    • good
    • 0
この回答へのお礼

はい。このコードを理解したいので。

お礼日時:2022/03/15 15:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!