summaryrefslogtreecommitdiff
path: root/c
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-09-06 23:17:22 +0800
committerMistivia <i@mistivia.com>2025-09-06 23:17:41 +0800
commitad95cba8220e2a7c86362caeb76e1a4333e9c2b8 (patch)
tree30b31d94e2ceb46d4e946bfa1eb88b956508f760 /c
parent5dd8dcdc2ccfa89d25a3cb342a2f89c644236971 (diff)
refactor
Diffstat (limited to 'c')
-rw-r--r--c/0026/main.c27
-rw-r--r--c/0027/main.c11
-rw-r--r--c/0035/main.c27
-rw-r--r--c/0058/main.c21
-rw-r--r--c/0066/main.c38
-rw-r--r--c/0067/main.c73
-rw-r--r--c/0069/main.c26
-rw-r--r--c/0070/main.c15
8 files changed, 0 insertions, 238 deletions
diff --git a/c/0026/main.c b/c/0026/main.c
deleted file mode 100644
index 27f94e0..0000000
--- a/c/0026/main.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <stdio.h>
-
-// begin
-
-int removeDuplicates(int* nums, int numsSize) {
- int *p1, p2;
- if (numsSize == 0) return 0;
-
- int p = 0;
- int cur = nums[0];
- for (int i = 1; i < numsSize; i++) {
- if (nums[i] != cur) {
- p++;
- cur = nums[i];
- nums[p] = nums[i];
- }
- }
- return p+1;
-}
-
-// end
-
-int main() {
- int arr[] = {1,2,3,3,4,5};
- printf("%d\n", removeDuplicates(arr, sizeof(arr) / sizeof(int)));
- return 0;
-} \ No newline at end of file
diff --git a/c/0027/main.c b/c/0027/main.c
deleted file mode 100644
index dd5ab1b..0000000
--- a/c/0027/main.c
+++ /dev/null
@@ -1,11 +0,0 @@
-int removeElement(int* nums, int numsSize, int val) {
- int p = 0;
- for (int i = 0; i < numsSize; i++) {
- if (nums[i] == val) {
- continue;
- }
- nums[p] = nums[i];
- p++;
- }
- return p;
-}
diff --git a/c/0035/main.c b/c/0035/main.c
deleted file mode 100644
index 287885a..0000000
--- a/c/0035/main.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <stdio.h>
-
-// begin
-
-int searchInsert(int* nums, int numsSize, int target) {
- int lp = 0, rp = numsSize - 1;
- int mid = -1;
- while (lp <= rp) {
- mid = lp + (rp - lp) / 2;
- if (target > nums[mid]) {
- lp = mid + 1;
- } else if (target < nums[mid]) {
- rp = mid - 1;
- } else {
- return mid;
- }
- }
- if (target > nums[mid]) mid++;
- return mid;
-}
-
-// end
-
-int main() {
- int arr[] = {1,2,4,5,6};
- printf("%d\n", searchInsert(arr, 5, 3));
-} \ No newline at end of file
diff --git a/c/0058/main.c b/c/0058/main.c
deleted file mode 100644
index 6aff206..0000000
--- a/c/0058/main.c
+++ /dev/null
@@ -1,21 +0,0 @@
-int lengthOfLastWord(char* s) {
- int i = 0;
- int cur = 0;
- int last = 0;
- while (s[i] != '\0') {
- if (s[i] == ' ') {
- if (cur > 0) {
- last = cur;
- }
- cur = 0;
- } else {
- cur++;
- }
- i++;
- }
- if (cur > 0) {
- return cur;
- } else {
- return last;
- }
-} \ No newline at end of file
diff --git a/c/0066/main.c b/c/0066/main.c
deleted file mode 100644
index b01eb8b..0000000
--- a/c/0066/main.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <stdlib.h>
-
-// begin
-
-/**
- * Note: The returned array must be malloced, assume caller calls free().
- */
-int* plusOne(int* digits, int digitsSize, int* returnSize) {
- int *buffer = malloc((digitsSize + 1) * sizeof(int));
- for (int i = 0; i < digitsSize; i++) {
- buffer[i] = digits[digitsSize - 1 - i];
- }
- buffer[0]++;
- int carry = 0;
- for (int i = 0; i < digitsSize; i++) {
- int val = buffer[i] + carry;
- carry = val / 10;
- buffer[i] = val % 10;
- }
- int len = digitsSize;
- if (carry) {
- len++;
- buffer[digitsSize] = 1;
- }
- int lp = 0, rp = len - 1;
- while (lp <= rp) {
- int t = buffer[lp];
- buffer[lp] = buffer[rp];
- buffer[rp] = t;
- lp++;
- rp--;
- }
- *returnSize = len;
- return buffer;
-}
-
-// end
-
diff --git a/c/0067/main.c b/c/0067/main.c
deleted file mode 100644
index 900c685..0000000
--- a/c/0067/main.c
+++ /dev/null
@@ -1,73 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct {
- int len;
- char *buf;
- int capacity;
-} String;
-
-void String_push(String *self, char c) {
- if (self->len + 2 >= self->capacity) {
- int new_capacity = self->capacity * 2;
- self->buf = realloc(self->buf, new_capacity);
- self->capacity = new_capacity;
- }
- self->buf[self->len] = c;
- self->buf[self->len + 1] = '\0';
- self->len++;
-}
-
-void String_init(String *self) {
- self->capacity = 16;
- self->buf = malloc(16);
- self->len = 0;
- self->buf[0] = '\0';
-}
-
-char* str_reverse(char *s) {
- int lp = 0, rp = strlen(s) - 1;
- s = strdup(s);
- while (lp <= rp) {
- char tmp = s[lp];
- s[lp] = s[rp];
- s[rp] = tmp;
- rp--;
- lp++;
- }
- return s;
-}
-
-char* addBinary(char* a, char* b) {
- a = str_reverse(a);
- b = str_reverse(b);
- String ret;
- String_init(&ret);
- int len_a = strlen(a);
- int len_b = strlen(b);
- int len = len_a > len_b ? len_a : len_b;
- int carry = 0;
- for (int i = 0; i < len; i++) {
- char ca, cb;
- if (i >= len_a) {
- ca = 0;
- } else {
- ca = a[i] - '0';
- }
- if (i >= len_b) {
- cb = 0;
- } else {
- cb = b[i] - '0';
- }
- char val = ca + cb + carry;
- String_push(&ret, val % 2 + '0');
- carry = val / 2;
- }
- if (carry) String_push(&ret, '1');
- free(a);
- free(b);
- char *oldbuf = ret.buf;
- ret.buf = str_reverse(ret.buf);
- free(oldbuf);
- return ret.buf;
-}
diff --git a/c/0069/main.c b/c/0069/main.c
deleted file mode 100644
index 86aab4a..0000000
--- a/c/0069/main.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <stdio.h>
-#include <stdint.h>
-
-int mySqrt(int x) {
- int64_t t = x;
- int64_t ln = 0, rn = x;
- while (ln <= rn) {
- int64_t mid = ln + (rn - ln) / 2;
- if (mid * mid < x) {
- if ((mid + 1) * (mid + 1) > x) {
- return mid;
- }
- ln = mid + 1;
- } else if (mid * mid > x) {
- rn = mid - 1;
- } else {
- return mid;
- }
- }
- return -1;
-}
-
-int main() {
- printf("%d\n", mySqrt(9));
- return 0;
-}
diff --git a/c/0070/main.c b/c/0070/main.c
deleted file mode 100644
index 143eeb3..0000000
--- a/c/0070/main.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <stdlib.h>
-
-int climbStairsImpl(int n, int* cache) {
- if (n == 0) return 1;
- if (n < 0) return 0;
- if (cache[n] > 0) return cache[n];
- int ret = climbStairsImpl(n-1, cache) + climbStairsImpl(n-2, cache);
- cache[n] = ret;
- return ret;
-}
-
-int climbStairs(int n) {
- int *cache = malloc(sizeof(int) * (n+1));
- return climbStairsImpl(n, cache);
-}