LeetCode
奔跑的废柴
卧久者行必远,伏久者飞必高
展开
-
【刷题目录2】LeetCode 分类整理帖
单调栈LeetCode 402. 移掉K位数字 java题解LeetCode 316. 去除重复字母 java题解LeetCode 901. 股票价格跨度 java题解【刷题1】LeetCode 84. 柱状图中最大的矩形 java题解【刷题1】LeetCode 85. 最大矩形 java题解【刷题1】LeetCode 581. 最短无序连续子数组 java题解【刷题1】LeetCode 42. 接雨水 java题解...原创 2020-12-16 10:33:45 · 627 阅读 · 0 评论 -
【目录】LeetCode《剑指Offer》java题解分类汇总
1.链表1.剑指Offer06从头到尾打印链表java题解2.剑指 Offer 18. 删除链表的节点java题解3.剑指 Offer 22. 链表中倒数第k个节点java题解4.剑指 Offer 24. 反转链表Java题解5.剑指 Offer 25. 合并两个排序的链表Java题解6.剑指 Offer 35. 复杂链表的复制java题解7.剑指 Offer 36. 二叉搜索树与双向链表java题解8.剑指 Offer 52. 两个链表的第一个公共节点java题解2.树1.剑指 Off原创 2020-10-25 13:22:07 · 982 阅读 · 2 评论 -
【刷题目录1】按标签刷LeetCode热题HOT100 java题解分类汇总
1.栈2.堆3.贪心算法4.排序5.位运算6.树7.深度优先搜索8.广度优先搜索9.并查集10.图11.设计原创 2020-10-25 09:10:13 · 2856 阅读 · 9 评论 -
LeetCode 45. 跳跃游戏 II java题解
【代码】LeetCode 45. 跳跃游戏 II java题解。原创 2024-03-20 21:11:52 · 235 阅读 · 0 评论 -
LeetCode 回文排列 java题解
存储次数后再遍历哈希表判断是否符合。为了避免遍历,两次遇到同样的字符,一次加一次减就可以消掉,出现偶数次的字符最终都互相抵消不在哈希表出现。字符总数奇数:最多一个字符出现奇数次。字符总数偶数:所有字符都出现偶数次。原创 2024-03-20 20:50:18 · 276 阅读 · 0 评论 -
LeetCode 9. 回文数 java题解
这是我想到的办法,但是题目最后说不允许这样。原创 2024-03-20 20:33:17 · 264 阅读 · 0 评论 -
LeetCode 125. 验证回文串 java题解
【代码】LeetCode 125. 验证回文串 java题解。原创 2024-03-20 20:06:05 · 164 阅读 · 0 评论 -
剑指 Offer 66. 构建乘积数组java题解
1.题目B[i]的值是A中除了A[i]以外所有元素的乘积。2.分析本题难点在于不让用除法。整体思路,结果集中任何一个元素 = 其左边所有元素的乘积 * 其右边所有元素的乘积。一轮循环构建左边的乘积并保存在结果集中,二轮循环构建右边乘积的过程,乘以左边的乘积,并将最终结果保存。3.代码class Solution { public int[] constructArr(int[] a) { if(a.length==0) return new i原创 2020-10-23 09:01:22 · 225 阅读 · 1 评论 -
LeetCode 1221. 分割平衡字符串 java题解
【代码】LeetCode 1221. 分割平衡字符串 java题解。原创 2024-03-20 14:59:45 · 224 阅读 · 0 评论 -
LeetCode 35. 搜索插入位置 java题解
显然官方题解的思路更好:我们可以将两个条件合并得出最后的目标:「在一个有序数组中找第一个大于等于 targe的下标」。原创 2024-03-20 13:27:49 · 239 阅读 · 0 评论 -
LeetCode 106. 从中序与后序遍历序列构造二叉树 java题解
【代码】LeetCode 106. 从中序与后序遍历序列构造二叉树 java题解。原创 2024-03-20 13:00:53 · 174 阅读 · 0 评论 -
Leetcode 204. 计数质数 java题解
这些数一定在之前就被其他数的倍数标记过了,例如 2 的所有倍数,3 的所有倍数等。x(x是他的一个因子)一定不是质数。可以对这些倍数进行标记,标记为非质数,后续不再进行判断。x,必然已经被(x-1)标记过所有的倍数,因为x-1排在x之前遍历到。x 开始标记其实是冗余的,应该直接从 x⋅x 开始标记,因为 2。对于一个质数 x,如果按上文说的我们从 2。想象有一个数x,他是质数,但是他的倍数2。所以对于x的倍数遍历,应该从x。原创 2024-03-20 11:37:31 · 371 阅读 · 0 评论 -
Leetcode 2594. 修车的最少时间 java题解
但是如果反过来,如果我们知道消耗的时间,可以很快判断出所有的机械工能不能在规范的时间修理所有的汽车。所以我们只需二分消耗的时间即可。二分答案:正着来做,确实难做,因为不知道每个机械工需要修理几辆汽车,这种题就很像oj、acm模式,我感觉好难写。看了提示说用二分,我也不知道怎么解。关于t时间内能修多少车,我也不会。原创 2024-03-19 23:16:34 · 196 阅读 · 0 评论 -
【刷题1】LeetCode 438. 找到字符串中所有字母异位词 java题解
【代码】【刷题1】LeetCode 438. 找到字符串中所有字母异位词 java题解。原创 2024-03-18 21:19:24 · 253 阅读 · 0 评论 -
【刷题1】LeetCode 41. 缺失的第一个正数 java题解
【代码】【刷题1】LeetCode 41. 缺失的第一个正数 java题解。原创 2024-03-04 21:07:31 · 233 阅读 · 1 评论 -
【刷题1】LeetCode 994. 腐烂的橘子 java题解
使用广度优先搜索,搜索步数就是分钟数,等到所有橘子都腐烂后,各个橘子腐烂的最长分钟数就是全部都烂的最小分钟数。tag:图论 广度优先搜索。原创 2024-03-01 19:22:42 · 345 阅读 · 0 评论 -
【刷题1】LeetCode 24. 两两交换链表中的节点 java题解
【代码】【刷题1】LeetCode 24. 两两交换链表中的节点 java题解。原创 2024-02-22 20:47:03 · 443 阅读 · 0 评论 -
【刷题1】LeetCode153. 寻找旋转排序数组中的最小值 java题解
【代码】【刷题1】153. 寻找旋转排序数组中的最小值 java题解。原创 2024-02-22 13:42:14 · 153 阅读 · 0 评论 -
【刷题1】LeetCode 131. 分割回文串 java题解
2024: 刚开始做leetcode hot100,查阅自己以前写的题解专栏,发现没有这一题,于是加上。可能leetcode100更新了吧。我看现在leetcode100官网的题目已经是分好类的了,以前我的题解帖子是自己手动分类整理的。原创 2024-02-17 22:37:42 · 345 阅读 · 0 评论 -
leetcode 6058. 统计打字方案数java
https://leetcode-cn.com/problems/count-number-of-texts/class Solution { //int[] buttons={0,0,3,3,3,3,3,4,3,4}; long res=1; int mod=1000000007; long[][] dp; //dp[0]是3字符可能性的,dp[1]是4字符可能性的。dp[][i]表面长度为i的重复字符串的信息种类数。 int n; public int原创 2022-05-08 13:15:21 · 932 阅读 · 0 评论 -
leetcode 821. 字符的最短距离 java
class Solution { public int[] shortestToChar(String s, char c) { int n=s.length(); int[] res=new int[n]; Arrays.fill(res,n); int j=-1; for(int i=0;i<n;i++){ if(s.charAt(i)==c){ j=i;原创 2022-04-19 10:36:29 · 259 阅读 · 0 评论 -
leetcode 819. 最常见的单词 java题解
class Solution { public String mostCommonWord(String paragraph, String[] banned) { HashSet<String> set=new HashSet<>(); for(String s:banned){ set.add(s); } String[] words=transfer(paragraph);原创 2022-04-17 15:34:58 · 363 阅读 · 0 评论 -
leetcode 380. O(1) 时间插入、删除和获取随机元素 java
https://leetcode-cn.com/problems/insert-delete-getrandom-o1/class RandomizedSet { HashMap<Integer,Integer> map; ArrayList<Integer> list; Random random; public RandomizedSet() { map=new HashMap<>(); list=ne原创 2022-04-13 20:06:42 · 142 阅读 · 0 评论 -
leetcode 6039. K 次增加后的最大乘积 java题解
https://leetcode-cn.com/problems/maximum-product-after-k-increments/将一个数x加一,对总乘积的影响:总乘积增加了 1*(x以外所有数的乘积)。为了每次加一都使总乘积最大,要让 x以外所有数的乘积 最大,那么x选取最小的数。使用堆,保证每次取的x最小。class Solution { public int maximumProduct(int[] nums, int k) { PriorityQueue<I原创 2022-04-10 13:34:44 · 445 阅读 · 0 评论 -
leetcode 6038. 向表达式添加括号后的最小结果 java
https://leetcode-cn.com/problems/minimize-result-by-adding-parentheses-to-expression/枚举左括号右括号位置class Solution { public String minimizeResult(String expression) { int plus=expression.indexOf("+"); String res=""; int min=Integer原创 2022-04-10 13:18:07 · 651 阅读 · 0 评论 -
leetcode 6037. 按奇偶性交换后的最大数字 java
https://leetcode-cn.com/problems/largest-number-after-digit-swaps-by-parity/class Solution { public int largestInteger(int num) { ArrayList<Integer> odds=new ArrayList<>(); ArrayList<Integer> evens=new ArrayList<&g原创 2022-04-10 12:51:13 · 600 阅读 · 0 评论 -
leetcode 796. 旋转字符串 java
https://leetcode-cn.com/problems/rotate-string/class Solution { public boolean rotateString(String s, String goal) { if(s.length()!=goal.length()){ return false; } LinkedList<Character> list=new LinkedList<原创 2022-04-07 15:10:25 · 347 阅读 · 0 评论 -
leetcode 310. 最小高度树 java
https://leetcode-cn.com/problems/minimum-height-trees/入度为1的意义:入度为1的点基本不会作为最终答案【除了只有两个点的情况】,因为与它相连的点(入度为1所以只有这一个点)到其他点的距离,永远比它到这些点的距离小1,以相连点为根会比入度为1的点为根最小高度更小(小于等于)。我们刨去所有入度为1的点以后,整个图有了一个新的入度,又同样有了新的一些入度为1的点,重复上面的讨论。class Solution { public List<原创 2022-04-06 12:14:51 · 428 阅读 · 0 评论 -
leetcode 143. 重排链表 java
https://leetcode-cn.com/problems/reorder-list/本题重点是要发现重排链表的结果等于进行如下操作后的结果1.对后半部分链表进行反转2.合并前后部分,“前1后1前2后2…”如何找到链表中点?可以使用快慢指针的方式。不难发现,本题是以往链表题的结合。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next;原创 2022-04-05 13:01:21 · 506 阅读 · 0 评论 -
leetcode 762. 二进制表示中质数个计算置位 java
class Solution { public int countPrimeSetBits(int left, int right) { int res=0; for(int i=left;i<=right;i++){ int count=count1(i);//1的个数 if(isPrime(count)){//1的个数是质数 res++; }原创 2022-04-05 11:00:03 · 363 阅读 · 0 评论 -
leetcode 307. 区域和检索 - 数组可修改 java
第一次学,码住以后还看树状数组让你顿悟树状数组原理与由来 - 此店不售此书的文章 - 知乎https://zhuanlan.zhihu.com/p/422561589学习笔记:优美的结构,树状数组 - LinearExpectation的文章 - 知乎https://zhuanlan.zhihu.com/p/358173145保留"从低位向高位数,第一个数字1"为运算结果最低位的 1 所处的位置,对应的就是树从下往上数的层数class NumArray { int[] tr;原创 2022-04-04 21:30:48 · 505 阅读 · 0 评论 -
leetcode 954. 二倍数对数组 java题解
https://leetcode-cn.com/problems/array-of-doubled-pairs/class Solution { public boolean canReorderDoubled(int[] arr) { HashMap<Integer,Integer> map=new HashMap<>(); for(int a:arr){ map.put(a,map.getOrDefault(a,0原创 2022-04-01 13:06:51 · 521 阅读 · 0 评论 -
leetcode 720. 词典中最长的单词 java
排序:按长度升序,长度相同时按字典序降序class Solution { public String longestWord(String[] words) { Arrays.sort(words,(a,b)-> { if(a.length()!=b.length()){ return a.length()-b.length(); } els原创 2022-03-17 09:47:43 · 393 阅读 · 0 评论 -
每日一题 leetcode 382. 链表随机节点 java题解
题目https://leetcode-cn.com/problems/linked-list-random-node/代码Java中的Random/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } *原创 2022-01-16 12:54:47 · 299 阅读 · 0 评论 -
每日一题 leetcode 747. 至少是其他数字两倍的最大数 java题解
题目https://leetcode-cn.com/problems/largest-number-at-least-twice-of-others/代码class Solution { public int dominantIndex(int[] nums) { int len=nums.length; int first=nums[0]; int second=Integer.MIN_VALUE; int firstIndex原创 2022-01-13 10:12:50 · 188 阅读 · 0 评论 -
每日一题 leetcode 89. 格雷编码 java题解
题目https://leetcode-cn.com/problems/gray-code/格雷码百度百科-格雷码计算第 n 个格雷码格雷码计算公式:G(n) = n xor (n >> 1)代码原创 2022-01-08 10:40:54 · 304 阅读 · 0 评论 -
leetcode 50. Pow(x, n) java题解
题目https://leetcode-cn.com/problems/powx-n/代码// 暴力计算然后超时了,难以言喻于是我们采用快速幂:要求x的2n次方,可以先求出x的n次方,再进行平方。(因为x的2n=x的n乘以x的n)如果要求x=2*n+1次方,可以先求出x的n次方,再进行平方,再乘以一个x。x负数次方,我们转化为x倒数的正数次方。 int的范围是 [-2的31次方 , 2的31次方-1]。当求 -2的31次方 时,他的倒数(正数)超出了范围,所以用long表示。class Sol原创 2022-01-07 18:25:05 · 494 阅读 · 0 评论 -
leetcode88. 合并两个有序数组 java题解
题目https://leetcode-cn.com/problems/merge-sorted-array/代码(双指针)class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { if(m==0){ for(int q=0;q<nums1.length;q++){ nums1[q]=nums2[q];原创 2022-01-07 18:04:41 · 338 阅读 · 0 评论 -
每日一题 leetcode 846. 一手顺子 java题解
题目https://leetcode-cn.com/problems/hand-of-straights/思路这个哈希表就用得很巧妙啊啊啊代码class Solution { public boolean isNStraightHand(int[] hand, int groupSize) { Arrays.sort(hand);//每组第一个数都是这组最小的,所以我们正序排列找各组起点 HashMap<Integer,Integer> map=原创 2021-12-30 10:04:17 · 238 阅读 · 0 评论 -
leetcode 556. 下一个更大元素 III java题解
题目https://leetcode-cn.com/problems/next-greater-element-iii/思路从右往左找到第一个升序的nums[i]<nums[i+1]在nums[i]右边找到刚好大于它的数,与nums[i]交换将num[i]后的数字都升序排列,保证后面部分的最小代码class Solution { public int nextGreaterElement(int n) { char[] nums=(""+n).toCharArra原创 2021-12-29 18:42:28 · 414 阅读 · 0 评论