自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(185)
  • 资源 (1)
  • 收藏
  • 关注

原创 LeetCode 312 周赛

只打周赛感觉还不太够,得多刷题,图论这类题熟练度太低了。另:这次学到了一个将下标单独取出来,按照某种策略对下标进行排序的技巧。注意Java里面这样处理时,下标需要用Integer数组来存,因为排序API()对原始类型int,不支持自定义的Comparator。另:刷算法题目:锻炼代码能力,因为都是固定的题型,可以反复理解,记忆,练习;参加周赛:锻炼思维能力,因为都不是原题。一般刚开始,需要先锻炼代码能力。

2022-09-26 16:40:16 296

原创 LeetCode 311 周赛

这周日早上被对象拉着去打羽毛球,可我大抵是病了,心里横竖都想着周赛,这冲动没有来由。于是背了台轻薄本就出门了。10点半刚好到球场,然后就在球场边的板凳上打起了周赛😂好在这次周赛难度不大,差不多11点10分的时候做完了4道题,然后就开心的打球去啦!事后想想,还好我背上了电脑参加了周赛,不然就要错过好不容易的AK的机会!😭。

2022-09-21 17:36:49 219

原创 LeetCode 87 双周赛

这次周赛,考了好几道贪心。对于贪心题目,考察的比较多的是思维。平时训练时,要注重对贪心策略正确性的证明。这次的第4题是属于思维能力还不够。还要继续加油啦~

2022-09-21 17:22:54 99

原创 LeetCode 310 周赛

本次周赛表现不错,前3题在半个小时内就都做出来了,然后最后一题坐牢了1个小时。第4题属于没办法,没学过线段树。用线段树是比较好想的,也有其他的不使用线段树的解法,有待后续再研究了。

2022-09-20 18:13:17 140

原创 LeetCode 309 周赛

LeetCode 309 周赛,过了3题,再接再厉~

2022-09-13 23:04:37 131

原创 LeetCode 86 双周赛

可惜这次周赛没有和第四题打照面。不然有机会A掉第四题的。第三题也是本来有机会过的!这样来看,四舍五入就相当于我AK了,哈哈哈!(YY一下)

2022-09-09 17:40:05 151

原创 LeetCode 308 周赛

本场周赛成绩很糟糕,第一题没写出。下次还得继续加油。

2022-09-09 17:38:19 121

原创 LeetCode307 周赛(补记)

LeetCode 307 周赛,还不错,3题,心满意足。继续加油!

2022-09-06 11:23:11 127

原创 LeetCode 85双周赛(补记)

仍然是3道题,第4题做了尝试,有基本思路(不像以前根本没时间和机会和第4题打照面),还算是有进步。什么时候能AK一次呢,还得继续加油。

2022-09-02 11:32:20 78

原创 LeetCode 306周赛 (补记)

这次周赛题目总体难度不算特别大,第一题卡了一下,一开始以为要用二维滑窗来做,后来发现暴力即可;第二题简单题;第三题运气较好,一开始就想了栈;第四题有机会做出来,但是分类讨论时脑子绕进去了没出来,比较可惜。继续加油!...

2022-08-31 21:00:55 172

原创 LeetCode 560. 和为K的子数组

前缀和+哈希表

2022-08-10 16:38:05 32

原创 LeetCode 347. 前K个高频元素

经典topk

2022-08-10 11:45:50 61

原创 LeetCode 1297. 子串的最大出现次数

注意,滑动窗口移动的过程中,窗口内的子串可能会被重复添加,所以需要去重,去重的标准是子串的起始位置。由于每次找到一个字母种类数满足条件的区间,就会对区间内进行全部扫描,会有很多区间被重复扫描过,效率比较低。的思路,可以这样理解,相当于尝试找到以每个位置作为结尾,且满足条件(字母种类。的子串(穷举所有长度满足条件的子串),加入到一个用于计数的。,每找到一个区间后,扫描全部子串的复杂度为。的子串,一个简单的想法就是,枚举全部长度为。,是出现次数最多的子串,那么一定能找到。的子串中,若有满足条件的,出现次数与。.

2022-08-09 17:24:12 128

原创 LeetCode 周赛笔记 —— 2022年8月 第一周

这周两场周赛,都只做出2/4道 题目。其中,周六晚上的比赛:第2题坏数对没有观察出规律,没想到对等式进行移项变换,思路上一直卡在使用归并排序求逆序对上面,这是题目见得太少。第4题,基本思路正确(贪心),代码实现上有点问题,每次拆数,都尽可能保证,新的最右侧的数最大,这个想法是没错的,但是我拆数的策略错了,我的策略并不能保证拆后新的最右侧的数最大。比如固定右侧为b,举例子[a,b]。当晚我的拆数策略是:若a是b的倍数,则直接拆成若干个b,这个没什么好说的;当2b > a > b,则拆的数为a / 2。....

2022-08-08 17:50:43 96

原创 LeetCode 899. 有序队列

LC 899. 有序队列。脑筋急转弯

2022-08-03 10:53:18 47

原创 LeetCode 114. 二叉树展开为链表(一题三吃)

将二叉树展开为单链表,讲解了按照前序遍历,中序遍历,后序遍历的访问顺序进行展开的思路

2022-07-28 10:23:30 110

原创 手写一个拙劣的Json转换器(Java版,只用jdk内置类,无第三方依赖)

手写一个简单的json转换器(java版)

2022-07-14 17:43:10 270

原创 LeetCode 1494. 并行课程II(状态压缩DP)

状态压缩DP的例题

2022-07-08 19:36:27 210

原创 LeetCode. 剑指offer 62. 圆圈中最后剩下的数

约瑟夫环问题

2022-07-06 16:17:11 61

原创 LeetCode 斐波那契序列

斐波那契序列,矩阵快速幂解法。

2022-07-04 12:38:45 111

原创 Java线程的异常处理机制

详细的讲解了线程及线程池的异常处理机制

2022-07-01 17:27:08 287

原创 LeetCode 最大矩形,最大正方形系列 84. 85. 221. 1277. 1725. (单调栈,动态规划)

最大矩形,最大正方形系列题目。单调栈和动态规划的运用

2022-06-30 15:11:56 103

原创 LeetCode 基本计算器 224. 227. follow up 394

计算器。栈的使用。

2022-06-23 15:40:41 134

原创 LeetCode 958. 二叉树的完全性校验

完全二叉树的校验

2022-06-23 10:37:12 110

原创 LeetCode 498. 对角线遍历

对角线遍历,找对角线的规律

2022-06-22 18:47:27 71

原创 LeetCode 接雨水系列 42.(一维) 407.(二维)

LeetCode 接雨水两道题目

2022-06-21 15:48:01 239

原创 LeetCode 买卖股票的最佳时机系列 121. 122. 123. 188. 309. 714

LeetCode股票买卖系列题解

2022-06-15 12:47:36 66

原创 LeetCode 105.根据前序和中序遍历构造二叉树(递归+迭代)

文章目录递归解法迭代解法前序遍历是按照:[根节点 - 左子树 - 右子树] 的顺序访问节点的中序遍历是按照:[左子树 - 根节点 - 右子树] 的顺序访问节点的我们可以先根据前序遍历序列中的第一个元素,找到根节点,然后在中序遍历序列中,定位到根节点的位置,然后把中序遍历的区间,从根节点的位置,一分为二,左侧是左子树的全部节点,右侧是右子树的全部节点,这样我们就得到了左子树节点的数量,和右子树节点的数量。再把这个信息带回到前序遍历的序列中,就能确定左子树的区间,和右子树的区间。然后我们分别对每个区间,进

2022-05-26 17:35:29 104 1

原创 LeetCode 3. 无重复字符的最长子串 -> follow up 395. 424. 1004. 1208. 1493. 2024. (滑动窗口系列)

文章目录题目描述思路follow up395. 至少有K个重复字符的最长子串题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。思路如果区间[l,r]内有重复字符,则以l作为左端点的不含重复字符的子串,不可能伸到r以右的位置。则用滑动窗口即可。写法一:(由于字符只包含字母,数字,符号,空格。即是ASCII码内的字符,可以直接开一个大小为128的数组进行计数,因为ASCII码不会超过128)class Solution { public int lengthOf

2022-05-23 23:46:16 94

原创 LeetCode 718. 最长重复子数组

文章目录题目描述动态规划滑动窗口题目描述给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。动态规划两个数组,找公共子数组。第一思路是动态规划,设f[i,j]表示在nums1中以位置i结尾,nums2中以位置j结尾,的全部公共子数组中,长度最大的公共子数组的长度。当nums1[i] != nums2[j],很明显不存在公共子数组,故f[i,j] = 0当nums1[i] == nums2[j],存在公共子数组,f[i,j] = f[i - 1,

2022-05-23 22:52:01 107

原创 二叉树的遍历系列(非递归)

文章目录前序遍历中序遍历后序遍历二叉树的遍历:前序,中序,后序(前,中,后,都是以根节点的访问顺序为参照。前序即为:根节点在最前;中序即为:根节点在中间;后序即为:根节点在最后。)先上非常简单的递归版 // 前序: 根 - 左 - 右 private void dfs(TreeNode root, List<Integer> ans) { if (root == null) return ; ans.add(root.val); // 先访问根节

2022-05-23 21:53:29 84

原创 LeetCode 4. 寻找两个正序数组的中位数(多解法)

文章目录解法一:合并数组解法二:双指针解法三:二分解法三:进阶二分(划分数组)解法一:合并数组将两个数组合并后,直接根据下标找到中位数。时间复杂度O(m+n)O(m + n)O(m+n),空间复杂度 O(m+n)O(m + n)O(m+n)class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int n = nums1.length, m = nums2.length;

2022-05-23 11:47:45 107

原创 LeetCode螺旋矩阵 54. 59

54. 螺旋矩阵题目描述:给你一个 m 行 n 列的矩阵 matrix ,请按照顺时针螺旋顺序,返回矩阵中的所有元素。题解:模拟即可。两种模拟方式:直接模拟按层模拟(转圈遍历)直接模拟:设置方向数组,以及当前方向,以及4个方向的边界,每次更新坐标[i,j],若更新后越界,则切换到下一个方向class Solution { public List<Integer> spiralOrder(int[][] matrix) { int n = matrix.l

2022-05-16 15:21:27 60

原创 LeetCode 46. 全排列 47.全排列II

题目描述46.全排列:给定一个不含重复数字的数组nums,按任意顺序返回所有全排列。47.全排列II:给定一个含重复数字的数组nums,按任意顺序返回所有不重复的全排列。题解46.全排列:是标准的DFS模板。对数组中的每个位置设一个visited变量,然后依次枚举每个位置,从visited为false中的数选一个填到当前位置,然后深搜下一个位置,记得深搜完毕要恢复现场。class Solution { public List<List<Integer>> permu

2022-05-15 16:48:18 135

原创 LeetCode 5. 最长回文子串(暴力+动态规划+中心开花+马拉车)+ follow up 647. 516

文章目录题目描述题解暴力动态规划中心开花马拉车题目描述给定一个字符串s,找出s中最长的回文子串题解暴力先想一个最直观最简单的:遍历全部子串,依次判断是否是回文,然后取其中最长的作为答案。class Solution { public String longestPalindrome(String s) { int n = s.length(); int begin = 0, end = 0; for (int i = 0; i < n

2022-05-13 17:34:23 122

原创 LeetCode 岛屿系列全解析 200. 463. 1905. 1254. 695. 827. 694. 711

题目描述给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。DFS其实就是求连通块的个数。这道题可以通过DFS,BFS,并查集,三种方法来做。先说比较简单的DFS:两层循环,对每个为1的位置,进行DFS,把跟这个点相连的所有点都访问一遍,并且访问后将该位置置为0,以便后续不会重复访问。class Solution { // 4个方向 int[] dx = {1, -

2022-05-11 21:13:50 243

原创 LeetCode 旋转数组系列 153. 154. 33. 81

文章目录题目描述题解1533315481题目描述这几道都是旋转数组的题目,区别只是题目的条件限制不太一样。旋转数组是这样的一种数组:将一个按升序排列好的数组,往右侧循环移位,使得整个数组形成左右两个有序区间,且左区间的数都比右区间的数大。比如 [5,6,7,8,1,2,3,4]。153和33这两道题给定的条件都是,数组中的元素互不相同。153是找最小值,33是找给定值。154和81这两道题给定的条件都是,数组中的元素可能重复。154是找最小值,81是找给定值。题解解题思路都是二分,因为是有序序

2022-05-11 11:44:22 108

原创 LeetCode 102. 二叉树的层序遍历

文章目录题目描述经典解法递归实现题目描述给定一颗二叉树,返回其层序遍历的结果。经典解法层序遍历(宽度优先搜索BFS)的经典实现是,借用一个队列。class Solution { public List<List<Integer>> levelOrder(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); List<List<Int

2022-05-10 16:20:50 119

原创 LeetCode 460. LFU缓存

文章目录题目描述思路实现解法二扩展题目描述实现一个LFU缓存(Least Frequently Used)。 在需要移除元素时,移除最近访问频率最低的。可以对每个元素增加一个计数器,访问一次就计数加一。若2个或多个元素拥有相同的最少访问次数时,则移除最久没有被访问的。与实现LRU缓存类似,为了确保get操作的复杂度为O(1)O(1)O(1),我们都会用一个Map来存储所有key-value, 关键在于put时需要移除元素的情况,要如何操作。思路先不考虑多个元素具有相同的访问次数,且次数都是最少的情

2022-05-10 13:08:58 128

原创 LeetCode 1171. 从链表中删去总和值为零的连续节点

文章目录题目描述思路代码扩展题目描述给定一个链表,请反复删去链表中和为0的连续序列,直到不存在这样的序列为止。比如 [1,2,-3,3], 可能的答案为 [3],或者[1,2]思路连续和为0,连续和,容易想到前缀和。顺着前缀和来想,什么时候能够判断出一段连续序列的和为0呢。只要2个位置的前缀和相等即可。比如链表为[1,2,3,-4,2,2], 算出其前缀和数组为[1,3,6,2,4,6]。可以看到分别在第3,第6个位置上的前缀和,皆为6。我们只需要删除第4到第6个位置,即可。也就是说,只要在从左

2022-05-10 11:44:04 158

Java Swing 实现的迷宫生成和寻路

Java Swing实现的迷宫随机生成和自动寻路小游戏。迷宫生成使用的是DFS,寻路用的是A星搜索。GUI用的是Swing,可以实现可视化迷宫动态生成和寻路

2020-02-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除