diff --git a/Submission/FindPivotIndex/screenshot2A2.jpeg b/Submission/FindPivotIndex/screenshot2A2.jpeg new file mode 100644 index 0000000..a8b072c Binary files /dev/null and b/Submission/FindPivotIndex/screenshot2A2.jpeg differ diff --git a/Submission/FindPivotIndex/solution.c b/Submission/FindPivotIndex/solution.c new file mode 100644 index 0000000..722b4fe --- /dev/null +++ b/Submission/FindPivotIndex/solution.c @@ -0,0 +1,14 @@ +int pivotIndex(int* nums, int n) { + int sum = 0, left = 0; + + for (int i = 0; i < n; i++) + sum += nums[i]; + + for (int i = 0; i < n; i++) { + if (left == sum - left - nums[i]) + return i; + left += nums[i]; + } + + return -1; +} \ No newline at end of file diff --git a/Submission/MergeIntervals/screenshot1A2.jpeg b/Submission/MergeIntervals/screenshot1A2.jpeg new file mode 100644 index 0000000..404ce10 Binary files /dev/null and b/Submission/MergeIntervals/screenshot1A2.jpeg differ diff --git a/Submission/MergeIntervals/solution.c b/Submission/MergeIntervals/solution.c new file mode 100644 index 0000000..2f1f44c --- /dev/null +++ b/Submission/MergeIntervals/solution.c @@ -0,0 +1,37 @@ +#include + +int cmp(const void* a, const void* b) { + return (*(int**)a)[0] - (*(int**)b)[0]; +} + +int** merge(int** intervals, int n, int* colSize, int* retSize, int** retColSizes) { + qsort(intervals, n, sizeof(int*), cmp); + + int** res = malloc(n * sizeof(int*)); + *retColSizes = malloc(n * sizeof(int)); + int k = 0; + + res[0] = malloc(2 * sizeof(int)); + res[0][0] = intervals[0][0]; + res[0][1] = intervals[0][1]; + (*retColSizes)[0] = 2; + + for (int i = 1; i < n; i++) { + int* last = res[k]; + int* curr = intervals[i]; + + if (curr[0] <= last[1]) { + if (curr[1] > last[1]) + last[1] = curr[1]; + } else { + k++; + res[k] = malloc(2 * sizeof(int)); + res[k][0] = curr[0]; + res[k][1] = curr[1]; + (*retColSizes)[k] = 2; + } + } + + *retSize = k + 1; + return res; +}