diff --git "a/problems/0034.345円234円250円346円216円222円345円272円217円346円225円260円347円273円204円344円270円255円346円237円245円346円211円276円345円205円203円347円264円240円347円232円204円347円254円254円344円270円200円344円270円252円345円222円214円346円234円200円345円220円216円344円270円200円344円270円252円344円275円215円347円275円256円.md" "b/problems/0034.345円234円250円346円216円222円345円272円217円346円225円260円347円273円204円344円270円255円346円237円245円346円211円276円345円205円203円347円264円240円347円232円204円347円254円254円344円270円200円344円270円252円345円222円214円346円234円200円345円220円216円344円270円200円344円270円252円344円275円215円347円275円256円.md" index e5266cd9ea..b412816686 100644 --- "a/problems/0034.345円234円250円346円216円222円345円272円217円346円225円260円347円273円204円344円270円255円346円237円245円346円211円276円345円205円203円347円264円240円347円232円204円347円254円254円344円270円200円344円270円252円345円222円214円346円234円200円345円220円216円344円270円200円344円270円252円344円275円215円347円275円256円.md" +++ "b/problems/0034.345円234円250円346円216円222円345円272円217円346円225円260円347円273円204円344円270円255円346円237円245円346円211円276円345円205円203円347円264円240円347円232円204円347円254円254円344円270円200円344円270円252円345円222円214円346円234円200円345円220円216円344円270円200円344円270円252円344円275円215円347円275円256円.md" @@ -739,6 +739,60 @@ class Solution { } ``` +### C +```c +int searchLeftBorder(int *nums, int numsSize, int target) { + int left = 0, right = numsSize - 1; + // 记录leftBorder没有被赋值的情况 + int leftBorder = -1; + // 边界为[left, right] + while (left <= right) { + // 更新middle值,等同于middle = (left + right) / 2 + int middle = left + ((right - left)>> 1); + // 若当前middle所指为target,将左边界设为middle,并向左继续寻找左边界 + if (nums[middle] == target) { + leftBorder = middle; + right = middle - 1; + } else if (nums[middle]> target) { + right = middle - 1; + } else { + left = middle + 1; + } + } + return leftBorder; +} +int searchRightBorder(int *nums, int numsSize, int target) { + int left = 0, right = numsSize - 1; + // 记录rightBorder没有被赋值的情况 + int rightBorder = -1; + while (left <= right) { + int middle = left + ((right - left)>> 1); + // 若当前middle所指为target,将右边界设为middle,并向右继续寻找右边界 + if (nums[middle] == target) { + rightBorder = middle; + left = middle + 1; + } else if (nums[middle]> target) { + right = middle - 1; + } else { + left = middle + 1; + } + } + return rightBorder; +} + +int* searchRange(int* nums, int numsSize, int target, int* returnSize){ + int leftBorder = searchLeftBorder(nums, numsSize, target); + int rightBorder = searchRightBorder(nums, numsSize, target); + + // 定义返回数组及数组大小 + *returnSize = 2; + int *resNums = (int*)malloc(sizeof(int) * 2); + resNums[0] = leftBorder; + resNums[1] = rightBorder; + return resNums; +} +``` +

diff --git "a/problems/0283.347円247円273円345円212円250円351円233円266円.md" "b/problems/0283.347円247円273円345円212円250円351円233円266円.md" index 42232cc0c6..fc708844bd 100644 --- "a/problems/0283.347円247円273円345円212円250円351円233円266円.md" +++ "b/problems/0283.347円247円273円345円212円250円351円233円266円.md" @@ -151,6 +151,24 @@ function moveZeroes(nums: number[]): void { }; ``` +### C + +```c +void moveZeroes(int* nums, int numsSize){ + int fastIndex = 0, slowIndex = 0; + for (; fastIndex < numsSize; fastIndex++) { + if (nums[fastIndex] != 0) { + nums[slowIndex++] = nums[fastIndex]; + } + } + + // 将slowIndex之后的元素变为0 + for (; slowIndex < numsSize; slowIndex++) { + nums[slowIndex] = 0; + } +} +``` + diff --git "a/problems/345円233円276円350円256円272円345円271円266円346円237円245円351円233円206円347円220円206円350円256円272円345円237円272円347円241円200円.md" "b/problems/345円233円276円350円256円272円345円271円266円346円237円245円351円233円206円347円220円206円350円256円272円345円237円272円347円241円200円.md" index bc520e8ee8..54341ce227 100644 --- "a/problems/345円233円276円350円256円272円345円271円266円346円237円245円351円233円206円347円220円206円350円256円272円345円237円272円347円241円200円.md" +++ "b/problems/345円233円276円350円256円272円345円271円266円346円237円245円351円233円206円347円220円206円350円256円272円345円237円272円347円241円200円.md" @@ -283,14 +283,13 @@ join(1, 8); join(3, 8); join(1, 7); join(8, 5); -join(6, 2); join(2, 9); - +join(6, 2); ``` 此时我们生成的的有向图为: -![](https://code-thinking-1253855093.file.myqcloud.com/pics/20230526122203.png) +![](https://cdn.tftree.top/others/jion.jpg) 有录友可能想,`join(3, 8)` 在图中为什么 将 元素1 连向元素 3 而不是将 元素 8 连向 元素 3 呢? diff --git "a/problems/351円223円276円350円241円250円347円220円206円350円256円272円345円237円272円347円241円200円.md" "b/problems/351円223円276円350円241円250円347円220円206円350円256円272円345円237円272円347円241円200円.md" index da5a1b0244..9dc4524269 100644 --- "a/problems/351円223円276円350円241円250円347円220円206円350円256円272円345円237円272円347円241円200円.md" +++ "b/problems/351円223円276円350円241円250円347円220円206円350円256円272円345円237円272円347円241円200円.md" @@ -241,6 +241,16 @@ impl ListNode { ``` +### C: + +```c +typedef struct ListNodeT { + int val; + struct ListNodeT next; +} ListNode; +``` + +

AltStyle によって変換されたページ (->オリジナル) /