- 博客(49)
- 收藏
- 关注
原创 LeetCode_排序数组_Array_M
912. 排序数组class Solution { public int[] sortArray(int[] nums) { quickSort(nums, 0, nums.length - 1); return nums; } // 快排 private void quickSort(int[] arr, int l, int r...
2020-03-31 21:21:07 109
原创 二叉树和红黑树
一、二叉树 1.每个节点最多有两个子节点(度不大于2) 2.满二叉树:深度为k,有2^k-1个节点 3.完全二叉树:在满二叉树的基础上右边缺几个口。深度为k,最少2^(k-1)个节点,最多2^k - 1个节点 4.节点的度:子树的个数。度为0的叫叶子节点,度不为0的叫分支节点 5.先序遍历(根左右)、中序遍历(左根右)、后序遍历(左右根)、层次遍历(队列实...
2020-03-31 00:06:21 426
原创 LeetCode_圆圈中最后剩下的数字_Math_E
面试题62. 圆圈中最后剩下的数字class Solution { public int lastRemaining(int n, int m) { // 模拟法 List<Integer> list = new ArrayList<>(n); for (int i = 0; i < n; i++) { ...
2020-03-30 03:01:26 89
原创 LeetCode_地图分析_BFS_M
1162. 地图分析class Solution { public int maxDistance(int[][] grid) { Queue<Node> queue = new LinkedList<>(); // 把首节点放进去: 所有的1 for (int i = 0; i < grid.length...
2020-03-30 01:43:13 123
原创 Trie 前缀树/字典树
一、Trie的介绍: 1、主要应用场景:搜索引擎的自动补全功能:Trie树+词频(概率)权重因子 IP路由:最长前缀匹配,Trie路由算法 分词 2、对比哈希表:哈希表大部分情况下能实现O(1)搜索,但是当冲突较大时可能会O(n);相同的前...
2020-03-29 02:47:20 153
原创 LeetCode_实现 Trie (前缀树)_Trie_M
208. 实现 Trie (前缀树)class Trie { //定义节点 class TrieNode { boolean isEnd; TrieNode[] next = new TrieNode[26]; public TrieNode(){} } private TrieNode root; ...
2020-03-29 02:12:09 98
原创 LeetCode_单词的压缩编码_Array_M
820. 单词的压缩编码 暴力..class Solution { public int minimumLengthEncoding(String[] words) { String[] temp = new String[words.length]; // 不能压缩的字符串集合 int size = 0, sum = 0; ...
2020-03-28 23:44:35 126
原创 LeetCode_可以被一步捕获的棋子数_Array_E
999. 可以被一步捕获的棋子数class Solution { public int numRookCaptures(char[][] board) { if (board == null) { return -1; } int x = 0, y = 0, sum = 0; for (int i...
2020-03-28 21:09:48 152
原创 LeetCode_卡牌分组_Array_E
914. 卡牌分组// 暴力..class Solution { public boolean hasGroupsSizeX(int[] deck) { int[] temp = new int[10000]; for (int a : deck) { temp[a] ++; } int j =...
2020-03-27 02:47:52 104
原创 Spring Bean的生命周期、BeanFactory和FactoryBean的区别
一、Spring Bean的生命周期二、Spring BeanFactory和FactoryBean的区别
2020-03-26 23:15:04 156
原创 Spring的IoC和AOP原理
IoC和AOPIoC简介: 1.Inversion of Control 控制反转。一种设计思想,为了降低耦合度。 2.A实例调用B实例,通常是A通过new B来创建B实例,从而调用;而在依赖注入的模式下创建被调用者的工作不再由调用者来完成,而是通过Spring来创建,因此称之为“控制反转”;获得依赖对象的过程被反转了。 3.DI: Dependency Inje...
2020-03-25 23:35:47 918
原创 Mysql的modify和change
Change: 对列进行重命名时: < mysql> ALTER TABLE t1 CHANGE a b INTEGER。 改列的类型而不是名称, CHANGE语法仍然要求旧的和新的列名称,即使旧的和新的列名称是一样的。 <mysql> ALTER TABLE t1 CHANGE b b BIGINTNOT ...
2020-03-25 11:01:10 1105
原创 LeetCode_三维形体的表面积_Math_E
892. 三维形体的表面积class Solution { public int surfaceArea(int[][] grid) { int n = grid.length, sum = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) {...
2020-03-25 01:58:43 90
原创 LeetCode_环形链表_LinkedList_E
141. 环形链表常规思路:放到哈希表里面,如果碰到相同的,就认为是有环/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * nex...
2020-03-23 22:56:09 96
原创 LeetCode_链表的中间结点_LinkedList_E
876. 链表的中间结点/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode...
2020-03-23 21:12:59 115
原创 LeetCode_使数组唯一的最小增量_Array_M
945. 使数组唯一的最小增量class Solution { public int minIncrementForUnique(int[] A) { if (A == null || A.length == 0) { return 0; } Arrays.sort(A); int sum = 0...
2020-03-23 00:23:47 91
原创 java的三种代理模式(AOP原理)
一、静态代理:1个接口+2实现类,不灵活二、JDK动态代理 1.又叫动态代理、JDK代理。目标对象一定要实现接口(否则只能用CGLib动态代理),代理类是 java.lang.reflect.Proxy类。 a.定义接口; b.创建真实委托类,实现接口; c.创建中间类,实现InvocationHandler接口,重写invoke方法,同时可...
2020-03-20 23:52:41 542
原创 LeetCode_最长回文串_String_E
409. 最长回文串class Solution{ public int longestPalindrome(String s) { if(s == null || s.length() == 0) { return 0; } int[] ch = new int[52]; for (char c : s.toCharArray()) { if (c >...
2020-03-19 21:44:42 91
原创 LeetCode_矩形重叠_Math_E
836. 矩形重叠class Solution { public boolean isRectangleOverlap(int[] rec1, int[] rec2) { // 方法一: 计算重叠区域 if (Math.min(rec1[2], rec2[2]) > Math.max(rec1[0], rec2[0]) && ...
2020-03-18 23:16:39 123
原创 LeetCode_拼写单词_Array_E
1160. 拼写单词 hashMap日常暴力...class Solution { public int countCharacters(String[] words, String chars) { char[] ch = chars.toCharArray(); if (ch.length == 0) { re...
2020-03-17 22:27:21 68
原创 LeetCode_重复的子字符串_String_E
459. 重复的子字符串class Solution { public boolean repeatedSubstringPattern(String s) { if (s == null || s.length() < 2) { return false; } int length = s.length(...
2020-03-16 22:04:52 99
原创 LeetCode_字符串压缩_String_E
01.06. 字符串压缩class Solution { public String compressString(String S) { if (S == null || S.length() == 0) { return ""; } char[] c = S.toCharArray(); St...
2020-03-16 21:26:49 86
原创 LeetCode_用栈实现队列_Stack_E
232. 用栈实现队列 两个栈实现: 栈s1中的数据是:直接push,从下到上是1234,跟队列的顺序相反; 栈s2中的数据是:从上到下是1234,直接pop符合队列的顺序。 s2不为空时,直接在s2中pop就行; s2为空时,先把s1中所有元素都倒过来挪到s2,再从s2中popclass MyQueue { Stack<Integer...
2020-03-16 02:31:06 204
原创 LeetCode_用队列实现栈_Stack_E
225. 用队列实现栈方法一: 用两个队列来回poll和offer实现: 压入栈O(1)、弹出栈O(n)class MyStack { private Queue<Integer> q1, q2; int top; // 记录栈的栈顶元素,其实就是队列的尾 /** Initialize your data structure here...
2020-03-16 01:34:06 139
原创 JVM调优
一、JVM调优 1.jvm调优主要是内存空间的分配,目的是提高系统性能。主要调优方式: 1.适当增加堆大小(也不能太大不然gc时间太长); 2.-Xms初始堆大小 和-Xmx最大堆大小相同,减少内存扩容的开销; 3.减少full GC频率的方式:适当增加eden空间,让更多的对象留在年轻代;合理调整进入老年代的年龄; 4.大...
2020-03-14 16:18:50 353
原创 LeetCode_求众数II_Array_M
229. 求众数 II 169. 多数元素的升级版class Solution { public List<Integer> majorityElement(int[] nums) { // 先用投票法,找出两个候选人; 再遍历这两个候选人出现的次数是不是符合要求 if (nums == null || nums.len...
2020-03-13 21:39:21 92
原创 LeetCode_多数元素_Array_E
169. 多数元素// 自己的笨比方法,用hashMap存,又慢又费内存class Solution { public int majorityElement(int[] nums) { if (nums == null || nums.length == 0) { return -1; } Map<I...
2020-03-13 20:45:33 87
原创 LeetCode_字符串的最大公因子_String_E
1071. 字符串的最大公因子// 又是自己的暴力..class Solution { public String gcdOfStrings(String str1, String str2) { if(str1 == null || str2 == null) { return ""; } String s...
2020-03-12 22:00:11 110
原创 LeetCode_二叉树的堂兄弟节点_BFS/DFS_E
993. 二叉树的堂兄弟节点 自己做的第一个想到的还是BFS... 代码又臭又长效率还低../** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(...
2020-03-11 21:42:21 122
原创 LeetCode_将数组分成和相等的三个部分_Array_E
1013. 将数组分成和相等的三个部分class Solution { public boolean canThreePartsEqualSum(int[] A) { int sum = 0; for (int a : A) { sum += a; } if (sum % 3 != 0 || A....
2020-03-11 20:29:51 94
原创 LeetCode_二叉树的层次遍历_BFS/DFS_M
102. 二叉树的层次遍历自己做的,完全按BFS模板搞的:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; }...
2020-03-10 22:36:09 148
原创 LeetCode_和为s的连续正数序列_Math_E
和为s的连续正数序列class Solution { public int[][] findContinuousSequence(int target) { List<int[]> list = new ArrayList<>(); int sum = 0; int max = target / 2 + 1; ...
2020-03-06 21:35:33 130
原创 BFS
BFS(Breadth First Search):广度优先搜索算法一、BFS用于解决两类问题: 1). 从A出发是否存在到达B的路径 2). 从A出发到达B的最少步骤二、BFS通用流程: 1). 构建Node类,加合适属性; 2). 初始化队列,将起点offer进队列; 3). 消费Queue中的对象,poll的同时判断有没有新数据要offer进来...
2020-03-06 02:47:31 141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人