- 博客(293)
- 资源 (5)
- 收藏
- 关注
原创 力扣技巧-堆
1.堆的实现(java)1.1 最大堆PriorityQueue<Integer> pq = new PriorityQueue<>(k, (o1, o2) -> o2 - o1);1.2 最小堆(Java默认)PriorityQueue<Integer> pq = new PriorityQueue<>(k);2.前k大,第k大问题(推荐用最小堆解决)3.前k小,第k小问题(推荐用最大堆解决)...
2022-10-05 22:36:41
268
原创 Mybatis面试题
为什么就能直接调用userMapper接口的方法?测试代码:package org.apache.ibatis.zytest;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBui
2021-12-13 00:57:09
322
原创 动态规划三
1.树状DP337. 打家劫舍 III/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left,
2021-12-11 12:46:05
207
原创 滑动窗口与双指针
1.最长区间模板:int maxLength(int[] A) { int N = A.length; // 区间的左指针 int left = -1; int ans = 0; for (int i = 0; i < N; i++) { // assert 在加入A[i]之前,(left, i-1]是一个合法有效的区间 // step 1. 直接将A[i]加到区间中,形成(left, i] // step 2. 将A[i]加入之后,惰性
2021-11-29 23:53:29
894
原创 二分搜索总结
1.模板一:boolean binarySearch(long[] A, long target) { if (A == null || A.length == 0) { return false; } // 首先设定初始区间,这里我们采用开闭原则[l, r) int l = 0, r = A.length; // 循环结束的判断条件是整个区间为空区间,那么运行结束。 // 我们使用的是开闭原则来表示一个区间,所以当l < r的时候 // 我们要查
2021-11-22 00:31:08
118
原创 幂等框架实现
幂等含义:针对同一个接口,多次发起同一个业务请求,必须保证业务只执行一次。问题:那如何判定两次接口请求是同一个业务请求呢?“幂等号”,如果两个接口请求,带有相同的幂等号,那我们就判断它们是重试关系,是同一个业务请求,不要重复执行。注意:幂等号需要保证全局唯一性。幂等处理正常流程正常情况下,幂等号随着请求传递到接口实现方之后,接口实现方将幂等号解析出来,传递给幂等框架。幂等框架先去数据库(比如 Redis)中查找这个幂等号是否已经存在。如果存在,说明业务逻辑已经或者正在执行,就不要重复执行了。如果
2021-06-06 22:56:17
394
原创 多线程练习题
1.要求线程a执行完才开始线程b, 线程b执行完才开始主线程思路:由题意可知会有两条副线程a和b,编写好a,b的内容后,在主线程中启动两个线程。关键点在于,一旦开启线程,线程的执行完全是由各自抢占cpu的能力而定,是人为不可控的,为了实现题目中的要求,我们需要在b线程中添加a.join()语句,便可以实现即使由b抢占到了cpu使用权,依旧会等a执行完,同样的方法在main方法中添加b.join()来实现main最后运行。package concurrent.thread;/** * <p&
2021-05-06 00:27:00
446
原创 位运算技巧
1.左移m << 1 = m * 2^12.Brian Kernighan 算法清除二进制串中最右边的 1// 抹去最右边的 1n = n & (n - 1);
2021-04-01 00:28:08
114
原创 IDEA启动tomcat控制台出现中文乱码问题完美解决方案
解决IDEA启动tomcat乱码问题主要有两步第一步:1.找到help如图2.找到Edit Custom VM Options…,如图3.在文件中加入-Dfile.encoding=UTF-8后保存4.清除缓存后重启IDEA第二步:1.tomcat启动配置2.加入-Dfile.encoding=UTF-8...
2021-02-26 17:41:33
352
原创 图论总结
拓扑排序拓扑排序的本质是:广度优先遍历 + 贪心算法。拓扑排序是广度优先遍历和贪心算法应用于有向图的专有名词。应用场景:任务调度计划、课程安排。拓扑排序的作用:1.得到一个拓扑序,拓扑序不唯一;2.检测有向图是否有环。(补充:无向图中检测是否有环,使用的数据结构是并查集。)算法流程:1、在开始排序前,扫描对应的存储空间(使用邻接表),将入度为 0的结点放入队列。2、只要队列非空,就从队首取出入度为 0 的结点,将这个结点输出到结果集中,并且将这个结点的所有邻接结点(它指向的结点)的入度减
2020-10-14 22:24:56
275
原创 回溯算法总结
解题的步骤是:先画图,再编码。去思考可以剪枝的条件, 为什么有的时候用 used 数组,有的时候设置搜索起点 begin 变量,理解状态变量设计的想法。本序列参考资料1.回溯算法入门级详解 + 练习2.回溯法总结3.回溯算法主要有排列、组合、子集相关问题,Flood Fill,字符串中的回溯问题,游戏问题四大题型。题型一:排列、组合、子集相关问题题目一:全排列(46. 全排列)代码如下:class Solution { public List<List<Integer&
2020-09-06 21:32:52
458
原创 [力扣] 动态规划(DP)问题分类汇总(二)
3.区间DP3.1 回文序列回文区间DP模板:for (int i = 0; i < n; i ++) { dp[i][i] = true; res ++; } for (int i = n - 1; i >= 0; i --) { for (int j = i + 1; j < n; j ++) { // 判断s[i] == s[j],dp[i][
2020-08-24 09:34:47
384
原创 [力扣] 动态规划(DP)问题分类汇总
动态规划是算法面试的一个重点,在力扣上有很多这类题目,题目是刷不完的,将动态规划的全部类型题目刷一遍可以达到事半功倍的效果。1.线性动态规划1.1 子序列系列:题目一:最长上升子序列(300. 最长上升子序列)题解:注意这里要求的子序列不是连续的,使用动态规划,dp[i]表示的是以下标i的数字作为结尾不连续最长上升子序列的长度,动态转移方程:dp[i] = max{dp[j] + 1, (0 <= j < i,a[j] < a[i]},dp表的初始状态为1,最后统计表中的最大值即为
2020-08-11 21:23:04
2002
1
原创 [剑指offer] JAVA版题解 面试题65
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion65 * @date 2020-07-05 21:10 */public class InterviewQuestion65 { public int addTwoNumber(int num1, int num2) { .
2020-07-05 21:15:39
139
原创 [剑指offer] JAVA版题解 面试题64
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion64 * @date 2020-07-05 17:57 */public class InterviewQuestion64 { public int sumFromOneToN(int n) { int sum .
2020-07-05 18:09:47
172
原创 [剑指offer] JAVA版题解 面试题63
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion63 * @date 2020-07-05 17:34 */public class InterviewQuestion63 { public int maxDiff(int[] number) { if (nul.
2020-07-05 17:49:46
149
原创 [剑指offer] JAVA版题解 面试题62
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion62 * @date 2020-07-05 17:00 */public class InterviewQuestion62 { public int lastRemaining(int n, int m) { i.
2020-07-05 17:06:20
175
原创 [剑指offer] JAVA版题解 面试题61
代码演示:package swordfingeroffer;import java.util.Arrays;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion61 * @date 2020-07-05 15:48 */public class InterviewQuestion61 { public boolean isContinu.
2020-07-05 16:00:28
158
原创 [剑指offer] JAVA版题解 面试题59
代码演示:package swordfingeroffer;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.List;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion59 * @date 2020-07-05 11:47 */public c.
2020-07-05 12:12:52
123
原创 [剑指offer] JAVA版题解 面试题58
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion58 * @date 2020-07-05 10:16 */public class InterviewQuestion58 { public String reverseSentence(String str) { .
2020-07-05 10:35:31
195
原创 [剑指offer] JAVA版题解 面试题55
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion55 * @date 2020-07-04 22:17 */public class InterviewQuestion55 { public int deepthTree(TreeNode root) { if .
2020-07-04 23:23:36
213
原创 [剑指offer] JAVA版题解 面试题54
代码演示:package swordfingeroffer;import java.util.ArrayList;import java.util.List;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion54 * @date 2020-07-04 21:40 */public class InterviewQuestion54 { .
2020-07-04 22:09:44
242
原创 [剑指offer] JAVA版题解 面试题53
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion53 * @date 2020-07-04 20:22 */public class InterviewQuestion53 { public int getNumberOfK(int[] data, int k) { .
2020-07-04 20:47:20
134
原创 [剑指offer] JAVA版题解 面试题52
代码演示:package swordfingeroffer;import java.util.List;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion52 * @date 2020-07-04 16:31 */public class InterviewQuestion52 { public ListNode findFirstC.
2020-07-04 16:50:25
120
原创 [剑指offer] JAVA版题解 面试题51
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion51 * @date 2020-07-04 15:45 */public class InterviewQuestion51 { int count = 0; public int inversePairs(int[] a.
2020-07-04 16:08:08
117
原创 [剑指offer] JAVA版题解 面试题50
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion50 * @date 2020-07-04 14:39 */public class InterviewQuestion50 { public int FirstNotRepeatingChar(String str) { .
2020-07-04 14:50:04
103
原创 [剑指offer] JAVA版题解 面试题49
代码演示:package swordfingeroffer;/** * <p>Description: </p> * * @author 罗志远 * @version 1.0 * @name InterviewQuestion49 * @date 2020-07-04 10:29 */public class InterviewQuestion49 { private boolean isUgly(int number) { while.
2020-07-04 11:51:29
105
Spring Boot实战 ,丁雪丰 (译者).rar
2019-06-28
SSM框架整合之逆向工程
2019-05-07
ojdbc6-11.2.0.1.0.jar
2019-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人