随笔分类 -  leetcode题目

1 2 3 4 5 ··· 16 下一页
记录leetcode刷题做题笔记
摘要:题目: 思路: 【1】本质上和 990. 等式方程的可满足性 这题很相似,并交集的方式是最合理的,因为把所有ASCII码值大的字符替换为可以转换的值小的字符,所以并交集产生时候选择父节点需要注意一下,此外每个节点的对等比较其实都是指他们的顶级父节点的对等比较(这个是需要注意的,也就是为什么要取出他们 阅读全文
posted @ 2023-08-22 17:43 忧愁的chafry 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】并交集的方式 由于是只有26个小写字母,所以可以用int数组来表示 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] 这就表示每个字母当前 阅读全文
posted @ 2023-08-22 15:26 忧愁的chafry 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】可以参考 200. 岛屿数量 这道题,本质上是一样的,只不过这里靠近边缘的陆地不被纳入到计算当中一样。 代码展示: //时间1 ms 击败 100% //内存41.6 MB 击败 99.30% class Solution { public int closedIsland(i 阅读全文
posted @ 2023-08-21 12:24 忧愁的chafry 阅读(10) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】常规的遍历题 代码展示: //时间6 ms 击败 97.46% //内存53.1 MB 击败 74.43% class Solution { public int numEnclaves(int[][] grid) { int m = grid.length, n = grid 阅读全文
posted @ 2023-08-21 12:23 忧愁的chafry 阅读(6) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】计数枚举的方式 【2】贪心的方式,只选取出拥有边最多的节点和次多的节点进行计算 代码展示: 【1】计数枚举的方式 //时间18 ms 击败 26.27% //内存42.8 MB 击败 80.51% class Solution { public int maximalNetwo 阅读全文
posted @ 2023-08-18 17:31 忧愁的chafry 阅读(7) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】模拟的方式 代码展示: //时间2 ms 击败 97.6% //内存47.5 MB 击败 48.76% class Solution { public int findJudge(int n, int[][] trust) { // 标记信任的人数 int[] trustFla 阅读全文
posted @ 2023-08-17 18:03 忧愁的chafry 阅读(13) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】这道题相当于披着中等难度的简单题,因为本质上求得就是入度为0的节点。 代码展示: //时间8 ms 击败 99.57% //内存79 MB 击败 66.96% class Solution { public List<Integer> findSmallestSetOfVert 阅读全文
posted @ 2023-08-17 17:23 忧愁的chafry 阅读(7) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】首先是明确约束 1)「子序列」是不要求连续的; 2)只关心这个子序列的最小值和最大值,而不关心元素的相对顺序; 代码展示: //时间32 ms 击败 75.71% //内存53.1 MB 击败 79.10% class Solution { public int numSubs 阅读全文
posted @ 2023-08-17 16:28 忧愁的chafry 阅读(16) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】无 代码展示: //时间1 ms 击败 100% //内存38.4 MB 击败 90.52% class Solution { public int arrangeCoins(int n) { int left = 1, right = n; while (left < rig 阅读全文
posted @ 2023-08-17 11:58 忧愁的chafry 阅读(5) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】熟悉常规二分查找即可 代码展示: //时间0 ms 击败 100% //内存42.8 MB 击败 94.16% class Solution { public char nextGreatestLetter(char[] letters, char target) { int 阅读全文
posted @ 2023-08-16 19:03 忧愁的chafry 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】常规的二分查找处理 【2】进阶方式的处理(其实可以参考 240. 搜索二维矩阵 II 这篇的 Z 字形查找 ,因为是有序的,所以倒着找会相对更容易一些) 代码展示: 【1】常规的二分查找处理 //正常的二分方式查找第一个负数的下标 //时间0 ms 击败 100% //内存42 阅读全文
posted @ 2023-08-15 18:54 忧愁的chafry 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】常规二分代码 代码展示: //时间0 ms 击败 100% //内存43.1 MB 击败 68.49% class Solution { public int search(int[] nums, int target) { int l = 0 , r = nums.lengt 阅读全文
posted @ 2023-08-15 17:47 忧愁的chafry 阅读(5) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】这种其实常规的会想到树的方式处理,因为每三个数值都是可以作为一个组合,树遍历的方式更加通俗,但是其实可以用双指针的方式进行优化。 代码展示: //时间230 ms 击败 35.95% //内存42 MB 击败 49.31% class Solution { public int 阅读全文
posted @ 2023-08-14 18:24 忧愁的chafry 阅读(6) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】这种其实暴力处理都是可以的,因为本质上两个数组都是无序的,而基于O(N^2),用排序加二分的方式其实可以优化到O(N*longN) 代码展示: 【1】更优的方式(其实就是分了情况进行处理,时间复杂度为O(N)) //时间4 ms 击败 100% //内存60.2 MB 击败 1 阅读全文
posted @ 2023-08-14 12:30 忧愁的chafry 编辑
摘要:题目: 思路: 【1】这道题的难度在于int数据会存在溢出的情况,所以用乘法是不可行的,虽然逻辑上能说的通,而且就算换上long类型也一样扛不住啊,所以改用除法,但是除法会有一个问题就是不能除以0【这个需要考虑处理】。 代码展示: //时间0 ms 击败 100% //内存38.2 MB 击败 39 阅读全文
posted @ 2023-08-14 12:27 忧愁的chafry 阅读(4) 评论(0) 推荐(0) 编辑
摘要:题目: 思路: 【1】这道题其实和 最长严格递增子序列 逻辑是一样的,所以其实可以参考 300. 最长递增子序列 这道题。 因为本质上 : 如数据 [[2, 100], [3, 200], [4, 300], [5, 250], [5, 400], [5, 500], [6, 360], [6, 3 阅读全文
posted @ 2023-08-14 12:27 忧愁的chafry 编辑
摘要:题目: 思路: 【1】单次遍历的方式 【2】二分的方式优化 代码展示: 【1】单次遍历的方式 //时间0 ms 击败 100% //内存40.4 MB 击败 90.61% //单次遍历的方式 class Solution { public int findKthPositive(int[] arr, 阅读全文
posted @ 2023-08-10 12:23 忧愁的chafry 阅读(14) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 16 下一页