- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 二分查找树
作死,挑战非递归,服了。注意边界条件:删除最小节点的时候记得把这个节点的右边节点给接上去删除最大节点同理 /** * @Author lyr * @create 2019/12/17 21:17 */public class Main { public static void main(String[] args) { int[]p = {1,2,3,4...
2019-12-21 15:20:51 117
原创 Union find
class FindUnion{ private int count; private int[] parent; public int size() { return count; } private int find(Integer p) { //可能有数组越界异常 if(p<0||p&...
2019-12-21 11:25:27 125
原创 字典树
class Trie { private Node root; static class Node{ Node[] childs; boolean isEnd; public Node(){ childs = new Node[26];//默认为 null } } ...
2019-12-21 00:18:55 115
原创 leetCode 72 编辑举例
class Solution { public int minDistance(String word1, String word2) { int len1 = word1.length()+1; int len2 = word2.length()+1; int[][] dp = new int[len1][len2]; f...
2019-12-20 20:30:10 184
原创 leetCode 198 打家劫舍
class Solution { //f[i] = max(f[i],f[i-2]) //f[i]{0,1} = max(f[i-1]{1},f[i-1]{0}+ value[i]) // 0表示 没有偷,1表示偷了 //贪心策略: 可以偷一定偷 // f[i]{1} = f[i-1]{0}+value[i] public int rob(int...
2019-12-20 19:12:49 100
原创 leetCode 322. 零钱兑换
class Solution { // dp[i] = dp[i-1]+dp[i-2] ????? 可以使用宽搜的方式来处理最短路径问题 // dp[i] = min(dp[n-1],dp[n-2],...,dp[1]) k in [1,2,5] //思路分析: 有多条路径可以走 (使用自底向上的动态规划) public int coinChange(int[...
2019-12-20 18:25:30 103
原创 leetCode 53.最大子序列和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。来源:力扣(LeetCode)链接:https://leetcode-c...
2019-12-20 16:37:06 162
原创 最长公共子序列
class Solution { public int longestCommonSubsequence(String text1, String text2) { char[]c1 = text1.toCharArray(); char[]c2 = text2.toCharArray(); int[][]dp = new int[c1.l...
2019-12-20 14:08:25 111
原创 动态规划基本思想
动态规划基本思想:1.寻找最优子结构2. 存储中间状态3. 列出状态转移方程4. 利用最优子结构,中途可以淘汰掉次优解leetCode 62class Solution { // opt[i][j]= opt[i-1][j]+opt[i][j-1] public int uniquePaths(int m, int n) { int[][]dp = n...
2019-12-20 12:41:07 297
原创 leetCode N元树的层序遍历
输入: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null ,null,14]输出: [[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]/*// Definition for a Node.class Node { ...
2019-12-20 12:40:50 194
原创 贪心算法
贪心算法 在每一步中选择当前状态下最好或者最优的选择,从而获取全局最优的算法贪心算法和动态规划的区别在于 他对每个子问题的解决方案都做出选择,不能回退(选择局部最优),动态规划会保存以前的计算结果,根据以前的结果选择,可以回退(可以回溯选择最优)例如:最小生成树,哈夫曼编码等等leetCode 55题class Solution { public boolean canJump(i...
2019-12-19 19:19:51 84
原创 leetCode 443 最小基因变化
思路: 这是一个最短路径问题,直接使用 bfs即可class Solution { private static final char[]dir = {'A','C','G','T'}; public int minMutation(String start/*起始状态*/, String end/*最终状态*/, String[] bank/*基因库*/) { ...
2019-12-19 11:33:28 168
原创 spring 上手03
1.配置 bean.xml 的必备信息,配置QueryRunner, c3p0 等 bean的信息<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XM...
2019-12-18 14:28:16 74
原创 spring上手案例 02
下面是 bean.xml 的配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co...
2019-12-18 11:59:42 74
原创 spring 上手案例01
/** * @Author lyr * @create 2019/12/17 21:17 */public interface Person {}import java.time.LocalDate;/** * @Author lyr * @create 2019/12/17 21:17 */public class SuperGirl implements Pers...
2019-12-18 00:00:05 85
原创 leetCode 450.删除二叉搜索树的最小节点
class Solution { public TreeNode deleteNode(TreeNode root, int key) { if(root==null)return root; if(root.val<key) { root.right=deleteNode(root.right,key); ...
2019-12-17 17:03:57 175
原创 二叉树的前驱节点和后继节点
前驱节点 (predecessor)中序遍历时的前一个节点如果 是二叉搜索树(bst),前驱节点就是前一个比它小的节点后继节点(successor)后继节点是中序遍历时的下一个节点如果是二叉搜索树,后继节点就是后一个比它大的节点如图,7的前驱节点是6,后继节点8编码实现:private static class Node<E> { E element; Node...
2019-12-17 14:58:19 3132
原创 leetCode 1091:二进制矩阵中的最短路径
在一个 N × N 的方形网格中,每个单元格有两种状态:空(0)或者阻塞(1)。一条从左上角到右下角、长度为 k 的畅通路径,由满足下述条件的单元格 C_1, C_2, …, C_k 组成:相邻单元格 C_i 和 C_{i+1} 在八个方向之一上连通(此时,C_i 和 C_{i+1} 不同且共享边或角)C_1 位于 (0, 0)(即,值为 grid[0][0])C_k 位于 (N-1, N...
2019-12-16 18:55:03 323
原创 leetCode 773题
在一个 2 x 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示.一次移动定义为选择 0 与一个相邻的数字(上下左右)进行交换.最终当板 board 的结果是 [[1,2,3],[4,5,0]] 谜板被解开。给出一个谜板的初始状态,返回最少可以通过多少次移动解开谜板,如果不能解开谜板,则返回 -1 。示例:输入:board = [[1,2,3]...
2019-12-16 17:54:07 205
原创 java 动态代理
1.什么是动态代理最近在学 spring的 aop,事务管理 ,面向切面编程这种就是使用了动态代理来实现比如说,一个事务开始前,我希望能做一些操作,比如开始事务,事务结束了,我要提交事务,中间出现了异常,我能进行事务回滚这个时候就可以使用动态代理除此之外,如果想要给原来的代码添加业务,也应该尽可能的使用代理的方法java的 设计模式是对外扩展,对内修改封闭,遵循开闭原则,不要修改原来的...
2019-12-03 12:22:04 102
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人