- 博客(9)
- 收藏
- 关注
原创 java api
目录数组和链表转化数组和链表转化一维数组(流转化)Integer[] res = new Integer[list.size()];list.toArray(res);int [] ints;ints = Arrays.stream(res).mapToInt(Integer::valueOf).toArray();return ints;二维数组ArrayList<int[]> reslist = new ArrayList<>();return r
2020-11-16 09:51:02
81
原创 并查集
目录并查集模板题目账户合并并查集模板题目账户合并class Solution { public List<List<String>> accountsMerge(List<List<String>> accounts) { DSU dsu = new DSU(); Map<String, String> emailToName = new HashMap(); Map<Stri
2020-10-22 14:24:21
74
原创 双指针
目录双指针模板题目三数之和双指针模板题目三数之和注意重复元素判断,边界问题 public List<List<Integer>> threeSum(int[] nums) { Arrays.sort(nums); int len = nums.length; int left = 0,right = 0; List<List<Integer>> res = new Array
2020-10-22 09:00:28
77
原创 动态规划总结
目录动态规划综述一维思路题目最大连续子数组和最长上升子序列二维动态规划综述一维思路题目最大连续子数组和-注意边界条件,res赋值是nums[0],数组长度为1时需要单独提出。public int maxSubArray(int[] nums) { if (nums.length==1)return nums[0]; int res = nums[0]; int[] dp = new int[nums.length]; dp[0]
2020-10-20 21:10:08
73
原创 系统设计
这里写目录标题SPRINGBOOT配置自动配置MAVEN特点使用起步依赖配置细节SPRINGBOOT配置自动配置MAVEN特点使用起步依赖好处:避免考虑依赖兼容适配关系等,需要什么依赖只指定功能,让构建过程自己处理需要什么东西指定基于功能的依赖自动把所需的依赖传递进来mvn dependency:tree 查看依赖树覆盖起步依赖引入的传递依赖/添加未引入依赖排除依赖如下覆盖依赖如下:配置细节网络下载的springboot包用idea打开需要new => pr
2020-10-06 23:27:13
68
原创 搜索算法总结
目录DFS思路模板题目岛屿数量岛屿最大面积打家劫舍3BFS思路模板题目二进制矩阵最短路径DFS思路等价于递归+回溯(编写简单)或者栈迭代(空间复杂度大)模板主函数定义:path (需要回溯)res(注意添加path需要new)flag(需要回溯,标记是否经过,一般都要有,减小时间复杂度同时避免结果集重复)grid,row,col等(初始数据及做出的选择)dfs(path,res,flag,grid,做出的选择)递归函数定义: dfs(path,res,flag,grid,做
2020-10-06 11:04:36
598
原创 二分法汇总
标准左边界(返回索引/第一个大于target的索引(包括数组长度))public static int searchInsert(int[] nums, int target) { if (nums.length==1) return nums[0]>=target?0:1; int left = 0,right = nums.length-1; while (left<=right){ int
2020-10-05 12:04:05
73
原创 栈汇总
计算器(栈)思路数字入栈左括号入栈右括号输出栈顶元素,直到遇到左括号(左括号出站,但不输出)其他运算符,不断去除所有运算优先级>=当前运算符的运算符,输出。最后新的符号入栈。栈中剩下的符号依次输出。代码// 下面代码摘自笔者 NOIP2005 等价表达式std::string convert(const std::string &s) { // 把中缀表达式转换为后缀表达式 std::stack<char> oper; std::string
2020-10-02 20:16:54
60
原创 排序总结
排序快排思路选取pivot划分,根据选取的pivot将数组划分成小于pivot的部分和大于pivot的部分递归求解小于pivot和大于pivot的部分划分方式这种方式会将数组划分为小于等于和大于等于pivot 的左右两部分,并且每一部分都不会为空,因为每次递归的时候数组的长度都会变小从而确保不会死循环。如果每次都选取数组最左边的元素来作为pivot,当数组已经是有序的时候每次递归数组的长度只会减少一,导致时间复杂度变为 O(n2)O(n2),这可以通过选中间元素作为pivot或者
2020-10-02 15:37:01
84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人