随笔分类 -  数据结构与算法

1 2 3 4 5 ··· 9 下一页
摘要:根据建表语句解析表结构,并将表结构解析为JSON。根据MYSQL的建表语句, 建表语句: CREATE TABLE `TEST` ( `ID` varchar(56) NOT NULL, `CREAETE_TIME` datetime NOT NULL, `IS_DEL` varchar(6) NO 阅读全文
posted @ 2023-02-16 18:15 牛有肉 阅读(288) 评论(0) 推荐(0) 编辑
摘要:解法主要有两项工作: 1、处理作用域(栈或递归); 2、顺序处理逻辑:(1)根据分隔符将语句拆解为 token;(2)根据关键字的运算逻辑定义状态,设计自动机;(3)从左至右逐个解析 token ,将 token 压入自动机 程序处理时,先处理会引起自动机状态变更的关键字或字符,再处理 token, 阅读全文
posted @ 2023-02-15 23:46 牛有肉 阅读(46) 评论(0) 推荐(0) 编辑
摘要:倒排索引的简单 JAVA 实现,当玩具其实都很粗糙,简单实现下原理: public class IntertedIndex { // 倒排索引 private Map<String, List<String>> indexMap; // 关键词计数 private Map<String, Integ 阅读全文
posted @ 2023-01-09 13:50 牛有肉 阅读(561) 评论(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) 编辑
摘要:JAVA: public final int[] topKFrequent(int[] nums, int k) { Item[] arr = this.initItemArr(nums); HeapSort heap = new HeapSort(arr); int[] reArr = new i 阅读全文
posted @ 2021-09-08 10:46 牛有肉 阅读(147) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 9 下一页