mirror of https://github.com/TheAlgorithms/C
Merge pull request #337 from CertifiedBlyndGuy/master
leetcode: Address readability of a few cases, and fix 283
This commit is contained in:
commit
c6f12642a1
|
@ -1,10 +1,12 @@
|
||||||
void moveZeroes(int* nums, int numsSize) {
|
void moveZeroes(int* nums, int numsSize) {
|
||||||
int i, start = 0;
|
int i = 0, start = 0;
|
||||||
|
|
||||||
for (i = 0; i < numsSize; i++) {
|
for (i = 0; i < numsSize; i++) {
|
||||||
if (nums[i])
|
if (nums[i])
|
||||||
nums[start++] = nums[i];
|
nums[start++] = nums[i];
|
||||||
}
|
}
|
||||||
for(;start < numsSize; start++) {
|
|
||||||
|
for (start; start < numsSize; start++) {
|
||||||
nums[start] = 0;
|
nums[start] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,10 +11,12 @@
|
||||||
struct TreeNode* searchBST(struct TreeNode* root, int val){
|
struct TreeNode* searchBST(struct TreeNode* root, int val){
|
||||||
if(!root)
|
if(!root)
|
||||||
return NULL;
|
return NULL;
|
||||||
if(root->val == val)
|
|
||||||
|
if (root->val == val) {
|
||||||
return root;
|
return root;
|
||||||
else if (root->val > val)
|
} else if (root->val > val) {
|
||||||
return searchBST(root->left, val);
|
return searchBST(root->left, val);
|
||||||
else
|
} else {
|
||||||
return searchBST(root->right, val);
|
return searchBST(root->right, val);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -2,13 +2,14 @@ int search(int* nums, int numsSize, int target){
|
||||||
int low = 0, high = numsSize - 1;
|
int low = 0, high = numsSize - 1;
|
||||||
while (low <= high) {
|
while (low <= high) {
|
||||||
int mid = low + (high - low) / 2;
|
int mid = low + (high - low) / 2;
|
||||||
if (target > nums[mid])
|
if (target > nums[mid]) {
|
||||||
low = mid + 1;
|
low = mid + 1;
|
||||||
else if (target < nums[mid])
|
} else if (target < nums[mid]) {
|
||||||
high = mid - 1;
|
high = mid - 1;
|
||||||
else
|
} else {
|
||||||
return mid;
|
return mid;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
struct ListNode* deleteDuplicates(struct ListNode* head) {
|
struct ListNode* deleteDuplicates(struct ListNode* head) {
|
||||||
if (head == NULL)
|
if (head == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (head->next && head->val == head->next->val) {
|
if (head->next && head->val == head->next->val) {
|
||||||
/* Remove all duplicate numbers */
|
/* Remove all duplicate numbers */
|
||||||
while(head->next && head->val == head->next->val)
|
while (head->next && head->val == head->next->val) {
|
||||||
head = head -> next;
|
head = head -> next;
|
||||||
|
}
|
||||||
return deleteDuplicates(head->next);
|
return deleteDuplicates(head->next);
|
||||||
} else {
|
} else {
|
||||||
head->next = deleteDuplicates(head->next);
|
head->next = deleteDuplicates(head->next);
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
int rangeSumBST(struct TreeNode* root, int L, int R){
|
int rangeSumBST(struct TreeNode* root, int L, int R){
|
||||||
if (root == NULL)
|
if (root == NULL) {
|
||||||
return 0;
|
return 0;
|
||||||
else if (root->val >= L && root->val <= R)
|
} else if (root->val >= L && root->val <= R) {
|
||||||
return root->val + rangeSumBST(root->left, L, R) + rangeSumBST(root->right, L, R);
|
return root->val + rangeSumBST(root->left, L, R) + rangeSumBST(root->right, L, R);
|
||||||
else
|
} else {
|
||||||
return rangeSumBST(root->left, L, R) + rangeSumBST(root->right, L, R);
|
return rangeSumBST(root->left, L, R) + rangeSumBST(root->right, L, R);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* 1st way: Using 2 pointer */
|
/* 1st way: Using 2 pointers */
|
||||||
int* sortedSquares(int* A, int ASize, int* returnSize){
|
int* sortedSquares(int* A, int ASize, int* returnSize){
|
||||||
int i, start = 0, end = ASize - 1;
|
int i, start = 0, end = ASize - 1;
|
||||||
int *res = malloc(ASize * sizeof(int));
|
int *res = malloc(ASize * sizeof(int));
|
||||||
|
@ -19,6 +19,7 @@ int* sortedSquares(int* A, int ASize, int* returnSize){
|
||||||
int cmpval(const void *a, const void *b) {
|
int cmpval(const void *a, const void *b) {
|
||||||
return *(int *)a - *(int *)b;
|
return *(int *)a - *(int *)b;
|
||||||
}
|
}
|
||||||
|
|
||||||
int* sortedSquares(int* A, int ASize, int* returnSize) {
|
int* sortedSquares(int* A, int ASize, int* returnSize) {
|
||||||
int *res = malloc(ASize * sizeof(int));
|
int *res = malloc(ASize * sizeof(int));
|
||||||
for (int i = 0; i < ASize; i++)
|
for (int i = 0; i < ASize; i++)
|
||||||
|
|
Loading…
Reference in New Issue