随笔分类 -  C

C语言
摘要:需要注意图中存在环路。 JAVA: public final Node cloneGraph(Node node) { return deepCopy(node, new HashMap<Integer, Node>()); } private Node deepCopy(Node node, Ha 阅读全文
posted @ 2023-11-10 11:21 牛有肉 阅读(14) 评论(0) 推荐(0) 编辑
摘要:因为数组是有序的,可以递归的选取根节点构建子树。 JAVA: public final TreeNode sortedArrayToBST(int[] nums) { if (null == nums) return null; return this.build(nums, 0, nums.len 阅读全文
posted @ 2023-11-09 15:25 牛有肉 阅读(13) 评论(0) 推荐(0) 编辑
摘要:简单题,溜溜手。 C: #include <stdlib.h> #include <string.h> void allocation(int *givenArr, int currentCandie, int currentPeople, int candies, int num_people) 阅读全文
posted @ 2022-05-29 22:33 牛有肉 阅读(59) 评论(0) 推荐(0) 编辑
摘要:C: // 队列与栈 struct Node { int val; int depth; struct Node *next; struct Node *pre; }; struct Queue { struct Node *head; struct Node *last; int len; }; 阅读全文
posted @ 2022-05-18 11:37 牛有肉 阅读(35) 评论(0) 推荐(0) 编辑
摘要:先计算最长公共子序列,然后以最长公共子序列为 base ,与两个原序列合并。 dp 后恢复子序列的手法很关键 C: #include <stdlib.h> #include <stdio.h> #include <string.h> char *combine(char *base, char *s 阅读全文
posted @ 2022-05-09 13:53 牛有肉 阅读(262) 评论(0) 推荐(0) 编辑
摘要:C: #include <stdio.h> #include <stdlib.h> int dp(int *prices, int fee, int point, int hasShared, int *cache) { if (point == 0) { if (hasShared == 0) r 阅读全文
posted @ 2022-05-05 10:11 牛有肉 阅读(43) 评论(0) 推荐(0) 编辑
摘要:C 手写栈结构: #include <stdlib.h> #include <stdio.h> #include <string.h> #include "stdbool.h" struct Node { char val; int num; struct Node *next; struct No 阅读全文
posted @ 2022-05-02 22:26 牛有肉 阅读(30) 评论(0) 推荐(0) 编辑
摘要:C: #include <stdlib.h> #include <stdio.h> #include <string.h> int **reArr; int currentArr[15]; int currentArrSize; void search(int point, int **graph, 阅读全文
posted @ 2022-03-28 17:30 牛有肉 阅读(67) 评论(0) 推荐(0) 编辑
摘要:C: bool search(char *s1, char *s2, char *s3, int p1, int p2, int *cache) { int len1 = strlen(s1), len2 = strlen(s2), len3 = strlen(s3); if (p1 == len1 阅读全文
posted @ 2022-03-17 13:02 牛有肉 阅读(49) 评论(0) 推荐(0) 编辑
摘要:C: void dealLeft(int *asteroids, int size, int point) { if (point >= size) return; if (asteroids[point] >= 0) return; int left = point - 1; while (lef 阅读全文
posted @ 2022-03-15 16:10 牛有肉 阅读(71) 评论(0) 推荐(0) 编辑
摘要:c: #include "stdbool.h" #include <string.h> int num = 0; bool palind(char *s, int left, int right) { if (left == right || left == right + 1) return tr 阅读全文
posted @ 2022-03-14 14:32 牛有肉 阅读(32) 评论(0) 推荐(0) 编辑
摘要:利用递归的回路进行比对。 C: #include "stdbool.h" #include <string.h> struct ListNode { int val; struct ListNode *next; }; struct ListNode *rightNode; bool isPal(s 阅读全文
posted @ 2022-03-09 14:04 牛有肉 阅读(17) 评论(0) 推荐(0) 编辑
摘要:C: void insert(int *B, int size, int val) { if (size == 1) B[0] = val; else { for (int i = 1; i < size; i++) { if (val <= B[i]) { B[i - 1] = val; retu 阅读全文
posted @ 2022-03-09 10:44 牛有肉 阅读(20) 评论(0) 推荐(0) 编辑
摘要:C: void moveZeroes(int* nums, int numsSize){ int left = 0,right=0; while(right<numsSize){ if(nums[right]!=0){ int temp = nums[right]; nums[right] = nu 阅读全文
posted @ 2022-03-08 16:21 牛有肉 阅读(22) 评论(0) 推荐(0) 编辑
摘要:依然是简单题,熟悉 uthash 的使用。终于想通了,为何封装 HASH_ADD 等相关方法时,需要传入指针的指针,因为 uthash 库的实现都是写在宏中的,编译后不是函数调用,而是代码替换! C: #include "stdbool.h" #include <string.h> #include 阅读全文
posted @ 2022-03-08 15:27 牛有肉 阅读(33) 评论(0) 推荐(0) 编辑
摘要:简单问题,熟悉下 C 的哈希表,使用第三方库: C: typedef struct Hash { int key; UT_hash_handle hh; } Hash; int hashExit(int key, Hash **hashs) { Hash *target = NULL; HASH_F 阅读全文
posted @ 2022-03-07 18:21 牛有肉 阅读(30) 评论(0) 推荐(0) 编辑
摘要:C: int *level(int *pre, int rowIndex, int currLevel, int *returnSize) { int currSize = *returnSize + 1; int *currList = (int *)malloc(sizeof(int) * cu 阅读全文
posted @ 2022-02-21 10:08 牛有肉 阅读(19) 评论(0) 推荐(0) 编辑
摘要:C: int getMinInRow(int **matrix, int rowSize, int rowPoint) { int minPoint = 0, minValue = matrix[rowPoint][0]; for (int i = 1; i < rowSize; i++) { if 阅读全文
posted @ 2022-02-15 17:44 牛有肉 阅读(43) 评论(0) 推荐(0) 编辑