![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
复习
文章平均质量分 65
Flashdog.
这个作者很懒,什么都没留下…
展开
-
设计模式总结
1.设计模式的原则:单一职责原则:一个类只做它该做的事情开闭原则:软件实体应当对扩展开放,对修改关闭依赖倒转原则:面向接口编程里氏替换原则:任何时候都可以用子类型替换掉父类型接口隔离原则:接口要小而专,绝不能大而全合成聚合复用原则:优先使用聚合或合成关系复用代码迪米特法则:一个对象应当对其他对象有尽可能少的了解(低耦合)2.常用的设计模式工厂模式单例模式代理模式...原创 2021-04-02 20:24:07 · 97 阅读 · 0 评论 -
acwing学习记录
整数二分 //区间被划分为[l,mid] [mid+1,r]使用 public int bSearch1(int[] nums, int l, int r) { while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid;//check()判断mid是否满足 else l = mid + 1; }原创 2021-08-15 09:37:10 · 189 阅读 · 0 评论 -
拓扑排序记录
假设现有 0,1,2,3 四个文件,0号文件依赖1号文件,1号文件依赖2号文件,3号文件依赖1号文件,则源文件的编译顺序为 2,1,0,3 或 2,1,3,0。现给出文件依赖关系,如 1,2,-1,1,表示0号文件依赖1号文件,1号文件依赖2号文件,2号文件没有依赖,3号文件依赖1号文件。请补充完整程序,返回正确的编译顺序。拓扑排序视频详解、public String compileSeq(String input) { //依赖关系 String[] split = input.原创 2021-06-17 10:53:55 · 131 阅读 · 0 评论 -
二叉树相关
翻转二叉树public TreeNode Mirror(TreeNode pRoot) { // write code here if (pRoot == null) return pRoot; TreeNode temp = pRoot.left; pRoot.left = pRoot.right; pRoot.right = temp; Mirror(pRoot.left);原创 2021-05-25 15:30:44 · 100 阅读 · 0 评论 -
最短路解法
模型构建目标:求出某一点到达任意一点的最短距离用city[i][j]表示从i到j的距离,把自己到自己设为0,把自己到不了的点设置为一个非常大的数,注意题目要求两个点之间的路是单向还是双向的 public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[][] city=new int[n][n];原创 2021-04-01 16:00:10 · 123 阅读 · 0 评论 -
贪心算法
跳跃问题每个位置i能到达的最远位置为nums[i]+i.我们依次算出能到达的最远距离即可判断 public boolean canJump(int[] nums) { int maxLen=0; int len=nums.length; for(int i=0;i<len;i++){ //i<=maxLen,说明可以到达该位置 if(i<=maxLen){原创 2021-03-13 17:56:58 · 46 阅读 · 0 评论 -
回溯算法集合
回溯算法1.回溯算法与DFS的区别DFS是朝某一个方向搜索,而回溯算法建立在DFS之上,在回溯中,达到结束条件后,恢复状态,回复上一层,再次搜索。因此回溯和DFS的区别在于有无状态重置(恢复状态)2.使用回溯算法的时机一般遇到子集、排列组合、搜索类问题时需要用到题目:①子集给你一个整数数组 nums ,数组中的元素互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集 public List<List<Integer&原创 2021-03-10 19:29:30 · 628 阅读 · 0 评论 -
code总结
1.求二叉树的深度public int TreeDepth(TreeNode node){ if(node==null) return 0; if(node.left==null&&node.right==null) return 1; return 1+Math.max(TreeDepth(node.left),TreeDepth(node.right)); }采用递归的原创 2021-02-25 20:30:47 · 391 阅读 · 0 评论 -
动态规划记录
1.最大子序和题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。思路:dp[n]表示class Solution { public int maxSubArray(int[] nums) { if(nums.length==1) return nums[0]; int[] dp=new int[nums.length]; dp[0]=nums[0];原创 2021-02-22 22:55:06 · 176 阅读 · 0 评论 -
剑指offer记录
1.整数转为二进制数String s = Integer.toBinaryString(i);此方法可以将一个int类型整数转为二进制数并用String类型输出,其中正数用原码形式,负数用补码原创 2021-02-01 15:31:37 · 263 阅读 · 1 评论 -
排序算法
public class BubbleSort { public static int[] bubbleSort(int[] array){ int len=array.length; if(len==0||array==null) return null; int temp; for(int i=0;i<len-1;i++){ for(int j=0;j<len-i-1;j+原创 2020-12-27 17:29:12 · 61 阅读 · 0 评论