From bc67da49457d8f64f46ca33dc8427a4350111f28 Mon Sep 17 00:00:00 2001 From: Jikuhara Date: Mon, 2 Jun 2025 14:23:08 +0900 Subject: [PATCH 1/4] 287. find-the-duplicate-number https://leetcode.com/problems/find-the-duplicate-number/description/ --- 287_find_the_duplicate_number/a.out | Bin 0 -> 15960 bytes 287_find_the_duplicate_number/image.png | Bin 0 -> 67291 bytes 287_find_the_duplicate_number/memo.md | 164 ++++++++++++++++++++++++ 287_find_the_duplicate_number/step1.c | 51 ++++++++ 287_find_the_duplicate_number/step2.c | 52 ++++++++ 287_find_the_duplicate_number/step3.c | 0 6 files changed, 267 insertions(+) create mode 100755 287_find_the_duplicate_number/a.out create mode 100644 287_find_the_duplicate_number/image.png create mode 100644 287_find_the_duplicate_number/memo.md create mode 100644 287_find_the_duplicate_number/step1.c create mode 100644 287_find_the_duplicate_number/step2.c create mode 100644 287_find_the_duplicate_number/step3.c diff --git a/287_find_the_duplicate_number/a.out b/287_find_the_duplicate_number/a.out new file mode 100755 index 0000000000000000000000000000000000000000..413b633e842519b0cd8675998448d44849d46e35 GIT binary patch literal 15960 zcmeHOYit}>6~4Q666d)arzy^ZW=fkX(0H+#ePRevB<&9!FE^E>Cvnc3Ytp1I#Nd%MD+kl+y(hXhJS)Q~E*7vhJ_QY2lA*endO zN8BaWf~FcaLt2n3j_Dg=WnfxEepNsbSBH$G#tOPyN1=Vdezc{z zzPU*+3@8}tVKV1;jN0_5OuE=x!oVu#^qu`V1Tkahy)^I6=P zUXR_lmvk>a^L@B1!Xk#wFiM9FN%30Y7^t}E(bJ_a{pt)u(si)EU2mmBunRg6bRg(J z(1D->K?i~k1RV%E@GL&)Gz(DTy}xp zQ7V^vfp!8t3$*&(a`}0nF9LlTC_V$l5qjjL2#rQVyEd(>xd=({dERc=rXkLK=+L>HFQju6F1qd4jm5!;C}sl5AX7*d7zwm8_I z?^p4CP#m971a5i_$+7+#)x*bu_pLbac`Oc&cdM+9XNvscVX8bn?latuO8Hr`EA;=J8{;8}wVlJH$R;J$C5^>BU-(%(mk&r=-#@jgxd_;L&mNA87q zhV(JgUn2dFL67zODVLOq@Wm5(4Oy=ytOs?O_*hx2+FW63TR3vi4Bbk(&O6sxIJ?w#WHf=lkyfbE} zvTlA%4CI~Rl$|UN503%FBiZ2Tu5g7CMjD_X+wMBqcGR@ZW1Y4w?9MM9YdhN00cuzd zVVf3Ntj+sWEk>xAaR~w( zIM~&?0}xg$LI7JKXAe2qWF{r-p5x$^OlR$4A(e!4Gr9!Z0* z-CrnBOt}gI+LY`pj%3p43Ff||9elXh7FZxu7#nt-exPn%(IMtw{X{B1BJ^y|P3eQ# zqCS$(jimDKm`BxLOv56TbdpqU?LGB))}{N9Qy3C@ax4oe6m|2;LSM%#1RHE{NDcys z8_Bprmu2d1Y7}@p>0ryr&g!WlI?Y2#z_O$e>U=8%^AOk>PA4F14r0MhmkCrb=$p{t zvKxl0sd6=cWCrIU@DY*!yT%}ORR)sEdNZDfNG0sh*E{Y30e|bmq--HPudmWb&xGdz zEaP%HFa9*)d7TyhU)wwQ`-gQszc@Wx^!Odc^-od$DZ+Dp%z=aJ z=Qv*g-9KP%!g!vKy+(NMpC2!S!OnpV=VFZK`Pw|;&w>qy`W;`+&-11<*wB^nJpZ$( zK%Vbm3>+avD*LYihjT5)^Ze>r!t?QR{p`o|F~H;8jb)y{O%a~wd;a>lfD6E&E8}^- zc+H3B{9F$o{|^Y?&H>jLilZMM_Cq}Ke*8~Bhdo&fn;iT*5mh43)5$7pWghACuzB$s z;Wff*=;Rrsmd|xieF-)%o_`+=atv`}C2E=Xq((hs3`FSiE*PKhGC=UFs|z91PCKl>4{@HgsV;ugfbP zKorigRu0B9eILwTd}aO_Q#frU`~!7_0qn)|d{HC(?ecTj8USN0TtCmhVua^9*&lOx z$7ae;?iCZ`PgFFDVZ4{}wdZwxiUL|x7~a?5M}q6&?*+UM<=VaYYmG|!H76pYPsEw= Qs`$qbD!`pSfKL?v0qnj0wg3PC literal 0 HcmV?d00001 diff --git a/287_find_the_duplicate_number/image.png b/287_find_the_duplicate_number/image.png new file mode 100644 index 0000000000000000000000000000000000000000..995cb77341ac643d7a87abdc4e017cf1416750e3 GIT binary patch literal 67291 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 Wn{pKr$pEfgAv$h*TB&Rm`F{W{L2TFn literal 0 HcmV?d00001 diff --git a/287_find_the_duplicate_number/memo.md b/287_find_the_duplicate_number/memo.md new file mode 100644 index 0000000..2483a35 --- /dev/null +++ b/287_find_the_duplicate_number/memo.md @@ -0,0 +1,164 @@ +# 287. find-the-duplicate-number + +https://leetcode.com/problems/find-the-duplicate-number/description/ + +## Comments +09:32 +空間計算量がO(1)であることがめっちゃだるそう。配列の値をそのまま使う。。。? +2分探索ならうまくいくのかなぁ。 +時間計算量はO(nlogn)になって実行可能ではありそう。 +空間計算量はO(1)になる。 + +具体的な二分探索方法 +1-n/2の数が、n/2 + 1個あるなら、前半側の数字に重複がある。 +逆もしかり。 + +1 - n/4の数が、n/4 + 1個あるなら、前半側の数字に重複がある。 +を繰り返す。 + +のかなぁ。 +再帰でやる?itereationでやる? +iterationでやると、while文の中で配列の値を使うことになるので、ちょっとだるい。 +再帰でやるなら、回数を継続していきたい。どうやって引数に渡すのか。 +whileで回すほうが楽か。 + +### step1 +```c +// 1. 配列の値をそのまま使う +int findDuplicate(int* nums, int numsSize) +{ + int i; + int first; + + i = 0; + first = 0; + while (i < numsSize) + { + if (nums[i] < numsSize / 2) + first++; + else + first--; + i++; + } + if (first > 0) + { + // 前半側に重複がある + return findDuplicate(nums, numsSize / 2); + } + else + { + // 後半側に重複がある + return findDuplicate(nums + numsSize / 2, numsSize - numsSize / 2); + } +} +``` +* +update: 現在時刻 09:44 +うーんnumSizeは固定にしたい。。。 +Static変数にして、再帰のたびにnumsSizeを渡すのはどうだろう。 + +### step2 +```c +// 1. 配列の値をそのまま使う +int findDuplicate(int* nums, int numsSize) +{ + int i; + int first; + static int numSize_copy = numsSize; + + i = 0; + first = 0; + while (i < numsSize_copy) + { + if (nums[i] < numsSize / 2) + first++; + else + first--; + i++; + } + if (first > 0) + { + // 前半側に重複がある + return findDuplicate(nums, numsSize / 2); + } + else + { + // 後半側に重複がある + return findDuplicate(nums + numsSize / 2, numsSize - numsSize / 2); + } +} +``` +* +いけんちゃうかなぁ。main関数を作成して、テストしてみよう。 + +```c +#include + +int main(void) +{ + int nums[] = {1, 2, 3, 3}; + int numsSize = 4; + + printf("%d\n", findDuplicate(nums, numsSize)); + return (0); +} +``` +うごかんなぁ。 +セグフォがでる。 +static変数を仮引数で初期化するのはだめらしい。 +なんでなんやろう。 +一旦固定値でやろう。 +やったけど無理そう。セグフォがでる。 +indexとかめんどくさいなぁ。やっぱwhileでやるほうが楽そう。 +while文に変更しよう。 +### step3 +```c + +int findDuplicate(int *nums, int numsSize) +{ + int left; + int mid; + int right; + int i; + int count; + + left = 0; + right = numsSize - 1; + while (left < right) + { + mid = (left + right) / 2; + count = 0; + i = 0; + while (i < numsSize) + { + if (nums[i] <= mid) + count++; + i++; + } + if (count > mid) + right = mid; + else + left = mid + 1; + } + return (left); +} + +#include + +int main(void) +{ + int nums[] = {1, 2, 4, 5, 3, 2}; + int numsSize = 6; + + printf("%d\n", findDuplicate(nums, numsSize)); + return (0); +} + +``` +めっちゃきれいに実装できた。 +mainのテスト何個か試しても行けた +行けてそう!! +![result](image.png) +いけた!! +なんかめちゃ早の人たちいる。 +何なんやろ。 diff --git a/287_find_the_duplicate_number/step1.c b/287_find_the_duplicate_number/step1.c new file mode 100644 index 0000000..187d7e3 --- /dev/null +++ b/287_find_the_duplicate_number/step1.c @@ -0,0 +1,51 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* step1.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: kjikuhar +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/06/02 09:47:39 by kjikuhar #+# #+# */ +/* Updated: 2025/06/02 09:55:16 by kjikuhar ### ########.fr */ +/* */ +/* ************************************************************************** */ + +// 1. 配列の値をそのまま使う +int findDuplicate(int* nums, int numsSize) +{ + int i; + int first; + static int numsSize_copy = 4; + + i = 0; + first = 0; + while (i < numsSize_copy) + { + if (nums[i] < numsSize / 2) + first++; + else + first--; + i++; + } + if (first > 0) + { + // 前半側に重複がある + return findDuplicate(nums, numsSize / 2); + } + else + { + // 後半側に重複がある + return findDuplicate(nums, numsSize - numsSize / 2); + } +} + +#include + +int main(void) +{ + int nums[] = {1, 2, 3, 3}; + int numsSize = 4; + + printf("%d\n", findDuplicate(nums, numsSize)); + return (0); +} diff --git a/287_find_the_duplicate_number/step2.c b/287_find_the_duplicate_number/step2.c new file mode 100644 index 0000000..2291272 --- /dev/null +++ b/287_find_the_duplicate_number/step2.c @@ -0,0 +1,52 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* step2.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: kjikuhar +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/06/02 09:47:39 by kjikuhar #+# #+# */ +/* Updated: 2025/06/02 14:19:49 by kjikuhar ### ########.fr */ +/* */ +/* ************************************************************************** */ + + +int findDuplicate(int *nums, int numsSize) +{ + int left; + int mid; + int right; + int i; + int count; + + left = 0; + right = numsSize - 1; + while (left < right) + { + mid = (left + right) / 2; + count = 0; + i = 0; + while (i < numsSize) + { + if (nums[i] <= mid) + count++; + i++; + } + if (count > mid) + right = mid; + else + left = mid + 1; + } + return (left); +} + +#include + +int main(void) +{ + int nums[] = {1, 2, 4, 5, 3, 2}; + int numsSize = 6; + + printf("%d\n", findDuplicate(nums, numsSize)); + return (0); +} diff --git a/287_find_the_duplicate_number/step3.c b/287_find_the_duplicate_number/step3.c new file mode 100644 index 0000000..e69de29 From d932f0c8ecc32e4beec69da0897bd509f5381b00 Mon Sep 17 00:00:00 2001 From: Jikuhara Date: Mon, 2 Jun 2025 15:10:36 +0900 Subject: [PATCH 2/4] 287. find-the-duplicate-number https://leetcode.com/problems/find-the-duplicate-number/description/ --- 287_find_the_duplicate_number/a.out | Bin 15960 -> 15960 bytes 287_find_the_duplicate_number/memo.md | 1 - 287_find_the_duplicate_number/step3.c | 51 ++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/287_find_the_duplicate_number/a.out b/287_find_the_duplicate_number/a.out index 413b633e842519b0cd8675998448d44849d46e35..2588f3897135d716d43d394bb53b6fbd779ad403 100755 GIT binary patch delta 328 zcmcanbE9Sh2P3B=69X7HZWd$=XA)t(8Z>Y6F5jg~_C~%jR%guZGj&+MxrX^Z595W& zF#`ANJ-S_gbTf3ietc*`3Ec_G>6OfW5JS;RXA@ z&E`TUc_&XW5Sq-S5XQJ4F>~xT{BcDJUlQS%QH@&Jk$6gqw(fylfSG?9~mcCS?O__2sr@tFff>G-e|R) F82}Wad-nhU delta 339 zcmcanbE9Sh2P0=769X6oZWd$=XA-HMVA@iaE%Vaoz6pm{t@pKz$!(mQYnbozFg}E<|DgE*(98!wgB?q^$pO{mk{M|z^XpHtOTq2F!`vUuP7Ig-FeJozlMSXP(1^~28I{k|87|dpA%bzsI@f;%sx%VtYGe-=iU x$(=^;fj+M^mS +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/06/02 15:04:50 by kjikuhar #+# #+# */ +/* Updated: 2025/06/02 15:09:21 by kjikuhar ### ########.fr */ +/* */ +/* ************************************************************************** */ + +// Floyd's Toroise & Hare algorithm +// Cycle detection + +int findDuplicate(int* nums, int n) +{ + int toroize; + int hare; + + toroize = nums[0]; + hare = nums[0]; + while (1) + { + toroize = nums[toroize]; + hare = nums[nums[hare]]; + if (toroize == hare) + break ; + } + toroize = nums[0]; + while (1) + { + toroize = nums[toroize]; + hare = nums[hare]; + if (toroize == hare) + break ; + } + return (hare); +} + + +#include + +int main(void) +{ + int nums[] = {1, 2, 4, 5, 3, 2}; + int numsSize = 6; + + printf("%d\n", findDuplicate(nums, numsSize)); + return (0); +} From ee1e3ca3a7ca21f0100be8ba06788e9846cfb46c Mon Sep 17 00:00:00 2001 From: Jikuhara Date: Mon, 2 Jun 2025 15:18:17 +0900 Subject: [PATCH 3/4] 287. find-the-duplicate-number https://leetcode.com/problems/find-the-duplicate-number/description/ --- 287_find_the_duplicate_number/a.out | Bin 15960 -> 15960 bytes 287_find_the_duplicate_number/step3.c | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/287_find_the_duplicate_number/a.out b/287_find_the_duplicate_number/a.out index 2588f3897135d716d43d394bb53b6fbd779ad403..4f779b7f5c5a5fa8ba3a8557741ef5f5a0587d66 100755 GIT binary patch delta 315 zcmcanbE9Sh2P3B~69X97ZWd%rXB5;>fN(Vw9KZ~X$(>C1MZ6W4ye!+a_rWQV6_z3! zP6-E#ZJM>YhPj&0qMJok0jRXo^}})3JFGx09=){>x=Zi8koo`rf9Ele{VGs{HZZ*4 z{P+LA;Q^24BL=aDHyaC`<(+(hiDi<4fG;ypA0rThXciy_IY~8zi-A#^+1doi2ATWg z{r~?JKw9F%|Nj9%+5; delta 315 zcmcanbE9Sh2P3B=69X7HZWd%rXB5;?fN*sb9KZ~n$(>C1MOd!}&6~W-cj=P7k#CIE z8FTwg9oBEIVXo%0@#tnzRRF5>=yd&X-1QC{P?JY*?St;pJ1?aE|Nq~4%wxX>)Tj*% zFWCS6|8ID}qxpzI>|q9m&H6%Tc_%3d_%Z@@ftKf4CSk)a4|4SGg})##lO7& z|Gxyt7Wwf1zYmah0n!OTn&spF|8s!!5+J>2a;(C1p+q2$!I4j(jmeppjVXqQony13 z&@Y}zdKQc(n=SROGc)Q;7BnhnG@0CK^qnzrbEENhHpY*WE3Nc7O@tgkni)(cZ?tj; QD*Fi(gNMduLu++r0Jkz+9RL6T diff --git a/287_find_the_duplicate_number/step3.c b/287_find_the_duplicate_number/step3.c index 52b99d6..4afef40 100644 --- a/287_find_the_duplicate_number/step3.c +++ b/287_find_the_duplicate_number/step3.c @@ -6,7 +6,7 @@ /* By: kjikuhar +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/06/02 15:04:50 by kjikuhar #+# #+# */ -/* Updated: 2025/06/02 15:09:21 by kjikuhar ### ########.fr */ +/* Updated: 2025/06/02 15:16:38 by kjikuhar ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,24 +15,24 @@ int findDuplicate(int* nums, int n) { - int toroize; + int tortoize; int hare; - toroize = nums[0]; - hare = nums[0]; + tortoize = 0; + hare = 0; while (1) { - toroize = nums[toroize]; + tortoize = nums[tortoize]; hare = nums[nums[hare]]; - if (toroize == hare) + if (tortoize == hare) break ; } - toroize = nums[0]; + tortoize = 0; while (1) { - toroize = nums[toroize]; + tortoize = nums[tortoize]; hare = nums[hare]; - if (toroize == hare) + if (tortoize == hare) break ; } return (hare); @@ -43,8 +43,8 @@ int findDuplicate(int* nums, int n) int main(void) { - int nums[] = {1, 2, 4, 5, 3, 2}; - int numsSize = 6; + int nums[] = {3, 1, 3, 4, 2}; + int numsSize = 5; printf("%d\n", findDuplicate(nums, numsSize)); return (0); From 9c08503b5aea0b9b6eda97e0b65566d2a644cadc Mon Sep 17 00:00:00 2001 From: Jikuhara Date: Mon, 2 Jun 2025 20:13:10 +0900 Subject: [PATCH 4/4] Changes to be committed: modified: create.sh modified: prcreate.sh --- create.sh | 12 ++++++------ prcreate.sh | 0 2 files changed, 6 insertions(+), 6 deletions(-) mode change 100644 => 100755 create.sh mode change 100644 => 100755 prcreate.sh diff --git a/create.sh b/create.sh old mode 100644 new mode 100755 index 1efeebc..fc4c191 --- a/create.sh +++ b/create.sh @@ -42,9 +42,9 @@ git checkout -b "$DIR_NAME" mkdir -p "$DIR_NAME" # Create empty files under the directory -touch "$DIR_NAME/step1.py" -touch "$DIR_NAME/step2.py" -touch "$DIR_NAME/step3.py" +touch "$DIR_NAME/step1.c" +touch "$DIR_NAME/step2.c" +touch "$DIR_NAME/step3.c" touch "$DIR_NAME/memo.md" # Populate memo.md using a heredoc @@ -57,15 +57,15 @@ $URL ### step1 -* +* ### step2 -* +* ### step3 -* +* EOF echo "Directory '$DIR_NAME' created with template files: step1.py, step2.py, step3.py, memo.md" diff --git a/prcreate.sh b/prcreate.sh old mode 100644 new mode 100755