- 博客(23)
- 资源 (18)
- 收藏
- 关注
原创 什么是Manacher(马拉车)算法-java代码实现
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666之前在讲《517,最长回文子串的3种解决方式》的时候,在最后提到过Manacher算法,但是没有写,这里单独拿出来写。我们来看个例子,比如字符串"babad"在添加特殊字符之后每个字符的回文半径如果还看不明白,我们来随便找个.
2021-07-29 10:19:26 1016 12
原创 LeetCode 92. 反转链表 II
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666之前讲过链表的全部反转《432,剑指 Offer-反转链表的3种方式》,而这题只要求反转链表的部分节点,如果直接使用多个指针对需要反转的节点前后两两交换,也是可以解决的。再来看下代码public ListNode reverseBet.
2021-07-29 10:10:48 143 1
原创 LeetCode 132. 分割回文串 II
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666前面刚讲过《551,回溯算法解分割回文串》,第551要求返回所有可能分隔的结果,而这题要求返回最小的分隔次数。如果数据量不大的话我们是可以使用第551题的答案的,找出第551题所有可能分隔的方案中最小的分隔次数就是我们这题的答案。因为这里.
2021-07-26 15:50:54 193 2
原创 LeetCode 1277. 统计全为 1 的正方形子矩阵
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666这题和《530,动态规划解最大正方形》解法类似,不过不同的是第530题让求的是最大正方形的面积,而这题要求的是正方形的个数。我们还按照第530题的方式来解public int countSquares(int[][] matrix) { .
2021-07-26 15:47:15 212
原创 LeetCode 131. 分割回文串
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666来看下视频演示一看就知道,其实就是个n叉树的DFS遍历,从根节点到叶子节点是字符串s截取的子串,我们只需要判断这些子串是否都是回文串即可,只要有一个不是就可以直接终止,如果从根节点到叶子节点的每个子串都是回文串,说明我们找到了一组截取方案.
2021-07-26 15:42:37 180
原创 LeetCode 48. 旋转图像
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666public void rotate(int[][] matrix) { int length = matrix.length; //先上下交换 for (int i = 0; i < length / 2; .
2021-07-26 15:35:23 182 1
原创 LeetCode 1423. 可获得的最大点数
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666视频链接最后再来看下代码public int maxScore(int[] cardPoints, int k) { int maxWindow = 0, length = cardPoints.length; //先统.
2021-07-26 15:31:49 169
原创 LeetCode 873. 最长的斐波那契子序列的长度
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666public int lenLongestFibSubseq(int[] A) { int size = A.length; //先把数组A中的所有元素都存储在Set中 Set<Integer> set = n.
2021-07-26 15:27:41 174
原创 LeetCode 872. 叶子相似的树
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666如果想要保证顺序,我们可以使用DFS,具体统计可以看下视频视频链接叶子节点统计出来了,我们只需要判断统计结果的是否完全一致即可,来看下代码。public boolean leafSimilar(TreeNode root1, T.
2021-07-25 16:32:11 221
原创 LeetCode 554. 砖墙
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666public int leastBricks(List<List<Integer>> wall) { //map中的key存储的是每块砖缝隙的位置,value是每个不同的 //位置出现的次数 .
2021-07-25 16:27:58 152
原创 LeetCode 938. 二叉搜索树的范围和
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666关于二叉树的前中后,以及BFS遍历可以看下《373,数据结构-6,树》关于二叉树的Morris遍历方式可以看下《488,二叉树的Morris中序和前序遍历》解法比较多,这里就随便挑一个来写,比如二叉树的中序遍历递归写法如下public .
2021-07-25 16:25:03 110
原创 剑指 Offer-平衡二叉树
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666//计算树中节点的高度public int depth(TreeNode root) { if (root == null) return 0; return Math.max(depth(root.left).
2021-07-25 16:20:34 154 1
原创 剑指 Offer-动态规划解礼物的最大价值
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666这题可以参照409,动态规划求不同路径,第409题让求的是有多少种路径,而这题让求的是所有路径中数字和最大的值。这题很容易想到的解决方式就是动态规划。public int maxValue(int[][] grid) { //边界.
2021-07-25 16:15:45 177
原创 LeetCode 76. 最小覆盖子串
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666视频链接原理搞懂了,代码就简单多了,但是这里有个关键点,就是怎么记录窗口内的元素,其实很简单,使用一个map就可以,来看下代码。public String minWindow(String s, String t) { //把t中的.
2021-07-23 10:25:01 166 9
原创 面试题 01.06. 字符串压缩
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666视频链接再来看下代码public String compressString(String S) { //边界条件判断 if (S == null || S.length() == 0) return S;.
2021-07-23 10:15:50 123
原创 LeetCode 647. 回文子串
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666if (s.charAt(i) != s.charAt(j)) continue;dp[i][j] = j - i <= 2 || dp[i + 1][j - 1];代码我们大致也能写出来了,因为是从i到j,所以j不能小于.
2021-07-23 10:12:45 210 13
原创 LeetCode 26. 删除有序数组中的重复项
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666视频链接来看下代码//双指针解决public int removeDuplicates(int[] A) { //边界条件判断 if (A == null || A.length == 0) return.
2021-07-23 10:05:33 154
原创 剑指 Offer-和为s的连续正数序列
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666视频链接因为至少有两个数,所以窗口的左边界left <= target / 2,题中是把找到的序列添加到列表list中,最后在转化为二维数组,来看下代码public int[][] findContinuousSequence(int.
2021-07-23 10:02:16 155 3
原创 剑指 Offer-字符串的排列
视频链接看到这里我们很容易想到的一种解决方式就是回溯,具体可以看下《450,什么叫回溯算法,一看就会,一写就废》,之前我们总结回溯算法的时候有一个经典的模板private void backtrack("原始参数") { //终止条件(递归必须要有终止条件) if ("终止条件") { //一些逻辑操作(可有可无,视情况而定) return; } for (int i = "for循环开始的参数"; i < "for循环结束的参..
2021-07-23 09:59:08 124
原创 剑指 Offer-构建乘积数组
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666代码如下public int[] constructArr(int[] a) { //边界条件判断 if (a == null || a.length == 0) return a; int lengt.
2021-07-23 09:56:01 179
原创 剑指 Offer-扑克牌中的顺子
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666public boolean isStraight(int[] nums) { //先对数组进行排序 Arrays.sort(nums); //记录大小王的数量 int zero = 0; for (in.
2021-07-23 09:54:21 161
原创 剑指 Offer-0~n-1中缺失的数字
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666public int missingNumber(int[] nums) { int xor = 0; for (int i = 0; i < nums.length; i++) xor ^= nums[i.
2021-07-23 09:51:56 155 2
原创 剑指 Offer-最小的k个数
截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666public int[] getLeastNumbers(int[] arr, int k) { //先排序,然后选择前k个即可 Arrays.sort(arr); int[] res = new int[k]; .
2021-07-23 09:47:51 119
数据结构和算法试题-总共1000多页带目录
2021-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人