2023年3月27日
摘要: AOP相关的概念 1)Aspect:切面,切入系统的一个切面。比如事务管理是一个切面,权限管理也是一个切面。 2)Join point:连接点,也就是可以进行横向切入的位置。 3)Advice:通知,切面在某个连接点执行的操作(分为:Before advice,After returning adv 阅读全文
posted @ 2023-03-27 22:29 zhengbiyu 阅读(139) 评论(0) 推荐(0)
摘要: 结构 /* * Redis 对象 */ typedef struct redisObject { // 类型 4bits unsigned type:4; // 编码方式 4bits unsigned encoding:4; // LRU 时间(相对于 server.lruclock) 24bits 阅读全文
posted @ 2023-03-27 19:02 zhengbiyu 阅读(20) 评论(0) 推荐(0)
摘要: 设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。 请实现 KthLargest 类: KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。 int add(int val) 将 val 阅读全文
posted @ 2023-03-27 00:40 zhengbiyu 阅读(24) 评论(0) 推荐(0)
摘要: 给定一个二叉树和一个值\ sum sum,判断是否有从根节点到叶子节点的节点值之和等于\ sum sum 的路径,例如:给出如下的二叉树,sum=22返回true,因为存在一条路径 5→4→11→2 的节点值之和为 22。 递归 class Solution { public boolean has 阅读全文
posted @ 2023-03-27 00:39 zhengbiyu 阅读(22) 评论(0) 推荐(0)
摘要: public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode p1 = headA, p2 = headB; while(p1 != p2){ p1 = p 阅读全文
posted @ 2023-03-27 00:38 zhengbiyu 阅读(21) 评论(0) 推荐(0)
摘要: 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid = [[1,3,1],[1,5,1],[4,2,1]] 输出:7 解释:因为路径 1→3→1→1→1 的总和最小。 阅读全文
posted @ 2023-03-27 00:37 zhengbiyu 阅读(20) 评论(0) 推荐(0)
摘要: 解决策略 建立一个大根堆和一个小根堆,用一个临时变量(count)来统计数据流的个数 当插入的数字个数为奇数时,使小根堆的个数比大根堆多1;当插入的数字个数为偶数时,使大根堆和小根堆的个数一样多 当总的个数为奇数时,中位数就是小根堆的堆顶;当总的个数为偶数时,中位数就是两个堆顶的值相加除以2 imp 阅读全文
posted @ 2023-03-27 00:36 zhengbiyu 阅读(62) 评论(0) 推荐(0)
摘要: 遍历解法 同时不断遍历两个链表,取出小的追加到新的头节点后,直至两者其中一个为空,再将另一者追加的新链表最后 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode dummy = new ListNode(-1); Li 阅读全文
posted @ 2023-03-27 00:36 zhengbiyu 阅读(45) 评论(0) 推荐(0)
摘要: class Solution { public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode curr = head; while(curr != null) { ListNode nxt = curr.ne 阅读全文
posted @ 2023-03-27 00:33 zhengbiyu 阅读(14) 评论(0) 推荐(0)
摘要: class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode pre = new ListNode(0); pre.next = head; ListNode start = pre, end = 阅读全文
posted @ 2023-03-27 00:33 zhengbiyu 阅读(12) 评论(0) 推荐(0)
摘要: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5 数据范围:链表长度满足 0≤n≤1000,链表中的值满足 1≤val≤1000 进阶:空间复杂度 O(n),时间复杂度 O( 阅读全文
posted @ 2023-03-27 00:33 zhengbiyu 阅读(33) 评论(0) 推荐(0)
摘要: 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 阅读全文
posted @ 2023-03-27 00:32 zhengbiyu 阅读(32) 评论(0) 推荐(0)
摘要: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nums = [0,1] 输 阅读全文
posted @ 2023-03-27 00:31 zhengbiyu 阅读(28) 评论(0) 推荐(0)
摘要: 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 提示: 1 <= arr.le 阅读全文
posted @ 2023-03-27 00:30 zhengbiyu 阅读(275) 评论(0) 推荐(0)
摘要: class Solution { public int[] spiralOrder(int[][] matrix) { if(matrix.length == 0) return new int[0]; int l = 0, r = matrix[0].length - 1, t = 0, b = 阅读全文
posted @ 2023-03-27 00:29 zhengbiyu 阅读(15) 评论(0) 推荐(0)
摘要: 递归 按照深度优先的处理顺序,会先访问节点 1,再访问节点 2,接着是节点 3。之后是第二列的 4 和 5,最后是第三列的 6。 每次递归的时候都需要带一个 index(表示当前的层数),也就对应那个田字格子中的第几行,如果当前行对应的 list 不存在,就加入一个空 list 进去。 class 阅读全文
posted @ 2023-03-27 00:29 zhengbiyu 阅读(19) 评论(0) 推荐(0)
摘要: 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 示例 1: 输入:head = [1,2 阅读全文
posted @ 2023-03-27 00:28 zhengbiyu 阅读(248) 评论(0) 推荐(0)
摘要: change buffer 是 buffer pool 里的一块区域。 change buffer 不缓存聚簇索引的更新,二级索引的page假如符合使用 change buffer 更新条件的话,就不去读磁盘,直接使用 change buffer 的 page,change buffer 的 pag 阅读全文
posted @ 2023-03-27 00:25 zhengbiyu 阅读(167) 评论(0) 推荐(0)
摘要: 什么时没必要用索引 1) 数据唯一性差,区分度不高(一个字段的取值只有几种时)的字段不要使用索引 比如性别,只有两种可能数据。意味着索引的二叉树级别少,多是平级。这样的二叉树查找无异于全表扫描。 2) 频繁更新的字段不要使用索引 比如logincount登录次数,频繁变化导致索引也频繁变化,增大数据 阅读全文
posted @ 2023-03-27 00:15 zhengbiyu 阅读(58) 评论(0) 推荐(0)