LeetCode
文章平均质量分 53
_天道酬勤_不忘初心
这个作者很懒,什么都没留下…
展开
-
LeetCode经典面试题70,爬楼梯
题目地址https://leetcode-cn.com/problems/climbing-stairs/思路分析这个是一个简单的递推题目,搞懂了其实就是一个斐波那契数列。你想的没错,就是你刚开始学编程时,那个兔子繁殖的问题如果一开始有一对兔子,它们每月生育一对兔子,小兔在出生后一个月又开始生育且繁殖情况与最初的那对兔子一样,那么一年后有多少对兔子?答案是,每月兔子的总数可以用以下数列表示:1,1,2,3,5,8,13,21,34,55,89,144,233…来想一下,第n阶台阶可以从那一节上爬原创 2021-08-08 12:52:42 · 230 阅读 · 0 评论 -
LeetCode 面试题 17.14. 最小K个数
思路题目地址:https://leetcode-cn.com/problems/smallest-k-lcci/思路:最小堆的简单应用代码public class Solution { public int[] smallestK(int[] arr, int k) { int[] result = new int[k]; PriorityQueu...原创 2020-03-23 19:00:54 · 268 阅读 · 0 评论 -
LeetCode 215. 数组中的第K个最大元素
思路题目地址:https://leetcode-cn.com/problems/kth-largest-element-in-an-array/思路:代码原创 2020-03-23 18:45:44 · 237 阅读 · 0 评论 -
LeetCode 61. 旋转链表
思路题目地址:https://leetcode-cn.com/problems/rotate-list/思路:算出链表的长度lengthk = k % length,为0的话直接返回原来的头节点即可头尾相接,此时最新的头节点为原来的头节点往后走length-k步,断开length-k-1和length-k-1的netx指针即可代码public class Solution {...原创 2020-03-18 21:55:30 · 182 阅读 · 0 评论 -
LeetCode 19. 删除链表的倒数第N个节点
思路题目地址:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/思路:遍历2次,第一次得出链表长度,第二次上length-n+1的节点双指针,第一个指定先向前移动n次,然后第一个指针和第二个指针同时移动,当第一个指针到达链表的尾节点时,第二个指针到达倒数第n个节点为了编码方便,在原先的链表上加一个哨兵节...原创 2020-03-18 19:23:57 · 113 阅读 · 0 评论 -
LeetCode 5. 最长回文子串
思路题目地址:https://leetcode-cn.com/problems/longest-palindromic-substring/思路:解法很多种,我用DP解决了,递推方程如下,i为起点,j为终点当j-i>=2时dp[i][j]=dp[i+1][j-1]+2所以得提前初始化长度为1和2的回文子串代码public class Solution { public...原创 2020-03-15 15:20:24 · 169 阅读 · 0 评论 -
LeetCode 982. 按位与为零的三元组
思路题目地址:https://leetcode-cn.com/problems/triples-with-bitwise-and-equal-to-zero/思路:上来就是3重循环暴力一波,超时了。后来想到可以把第1个和第2个数与操作的返回值缓存一下,如213和123,暴力的话得4次运算。缓存一下的话用3次运算。能省下不少时间,而且0 <= A[i] < 2^16,所以2个数与操作...原创 2020-03-15 11:18:07 · 190 阅读 · 0 评论 -
LeetCode 300. 最长上升子序列
思路题目地址:https://leetcode-cn.com/problems/longest-increasing-subsequence/思路:简单的模板题代码public class Solution { public int lengthOfLIS(int[] nums) { int max = 0; int[] dp = new int[...原创 2020-03-15 00:12:51 · 166 阅读 · 0 评论 -
LeetCode 27. 移除元素
思路题目地址:https://leetcode-cn.com/problems/remove-element/submissions/思路:把要去掉的元素移动到数组的最后即可。好吧,我自己写的代码很长,官方题解的双指针好像代码很短,而且思路很清晰代码public class Solution { public void swap(int[] nums, int a, int b)...原创 2020-03-14 23:52:59 · 160 阅读 · 0 评论 -
LeetCode 788. 旋转数字
思路题目地址:https://leetcode-cn.com/problems/rotated-digits/思路:模拟一下即可代码我看了一下官方的题解,我这里是用了一个map,其实搞复杂了,我把优化的点写到代码上把public class Solution { public int rotatedDigits(int N) { Map<Integer, ...原创 2020-03-14 20:14:52 · 205 阅读 · 0 评论 -
LeetCode 46. 全排列
思路题目地址:https://leetcode-cn.com/problems/permutations/思路:看下图,按顺序依次确定数字,通过swap获的所有情况代码public class Solution { public List<List<Integer>> permute(int[] nums) { List<List&...原创 2020-03-14 18:46:56 · 162 阅读 · 0 评论 -
LeetCode 191. 位1的个数
思路题目地址:https://leetcode-cn.com/problems/number-of-1-bits/题目中说到给的是无符号整数(无符号数只能表示非负数,即0和正数),所以我们不用考虑为负数的情况思路1:不断&1,直到输入的数变成0思路2:巧用n&(n-1),效率更高可以看到n&(n-1)会把n的二进制中的最左边的1去掉,因此不断进行n&(n...原创 2020-01-04 13:00:39 · 551 阅读 · 0 评论 -
LeetCode 231. 2的幂
思路题目地址:方法1:不断除2,结果为1则是2的幂,否则不是方法2:用数学中的log函数,看结果是否是整数,例如log2(8)=3,log2(6)= 2.5849625007方法3:n > 0 且 n & (n - 1) == 0代码方法1:public boolean isPowerOfTwo(int n) { if (n == 0) { re...原创 2019-12-21 18:01:56 · 466 阅读 · 0 评论 -
LeetCode 144. Binary Tree Preorder Traversal
题目地址:https://leetcode.com/problems/binary-tree-preorder-traversal/description/思路:二叉树的先序遍历AC代码(非递归实现)/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode...原创 2018-02-25 22:02:19 · 516 阅读 · 0 评论 -
LeetCode 145. Binary Tree Postorder Traversal
题目地址:https://leetcode.com/problems/binary-tree-postorder-traversal/description/思路:二叉树的后序遍历AC代码(递归实现)/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode...原创 2018-02-26 10:10:17 · 562 阅读 · 0 评论 -
LeetCode 94. Binary Tree Inorder Traversal
题目地址:https://leetcode.com/problems/binary-tree-inorder-traversal/description/思路:二叉树的中序遍历AC代码(非递归实现)/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode ...原创 2018-02-26 09:33:04 · 537 阅读 · 0 评论 -
LeetCode 62. 不同路径
题目地址:https://leetcode-cn.com/problems/unique-paths/description/思路:递归或者动态规划超时代码:class Solution { public int uniquePaths(int m, int n) { // 在网格边界的格子只能有一种走法 if (m == 1 || n == ...原创 2018-08-25 11:31:51 · 602 阅读 · 0 评论 -
LeetCode 42. 接雨水
题目地址:https://leetcode-cn.com/problems/trapping-rain-water/description/思路:刚开始我想一段一段的遍历过去求和,要考虑的情况较多,实现起来也比较复杂, 对每一个柱子能存多少水求和比较简单,这样只需要获取这个柱子左边的最高高度和这个柱子右边的最高高低,2者的最小值就是这个柱子的存水量AC代码1:class Solu...原创 2018-08-25 13:48:01 · 688 阅读 · 0 评论 -
LeetCode 20. 有效的括号
题目地址:https://leetcode-cn.com/problems/valid-parentheses/思路:匹配到则弹出栈顶,元素也不放,否则把元素放到栈里AC代码:class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack&...原创 2019-05-24 22:06:54 · 496 阅读 · 0 评论 -
LeetCode 49. 字母异位词分组
题目地址:https://leetcode-cn.com/problems/group-anagrams/submissions/思路:将每个字符串排序一下,key=排序后的字符, value=原始的字符,放在map中即可AC代码:class Solution { public List<List<String>> groupAnagrams(Str...原创 2019-05-25 21:58:04 · 528 阅读 · 0 评论 -
LeetCode 19.删除链表的倒数第N个节点
题目地址:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/思路:两次遍历法这个问题可以转变为删除从列表开头数起的第 (L - n + 1)个结点,其中 L是列表的长度。只要我们得到列表的长度 L(遍历一次),再删除地L-n+1个节点即可,代码还是比较简单的,就不再写了一次遍历法这是面试官期待的...原创 2019-09-04 14:21:39 · 492 阅读 · 0 评论 -
LeetCode 220. Contains Duplicate III
题目地址:https://leetcode.com/problems/contains-duplicate-iii/description/思路:刚开始直接暴力,先是错误,再是超时错误代码1:(这个是没有考虑num[i]-num[j]上溢的情况)public class Solution { public boolean containsNearbyAlmostDup原创 2018-02-05 11:19:36 · 557 阅读 · 0 评论