
leetcode刷题记录
文章平均质量分 56
本专栏以代码随想录的刷题顺序为主,采取leetcode方式,Java语法,配合一些自己的笔记。
zjlamtt
这个作者很懒,什么都没留下…
展开
-
滑动窗口之三数之和
三数之和15. 三数之和 - 力扣(LeetCode) (leetcode-cn.com)这个题最难的地方在于去重的实现。如果想实现去重,就必须对结果进行记录,还需要有一个比较的环节。首先第一个解法是哈希+排序,很显然,炸了public List<List<Integer>> threeSum(int[] nums) { int numsLen = nums.length; Map<Integer, List<Integer>原创 2022-04-20 13:59:37 · 442 阅读 · 0 评论 -
哈希表之有效的字母异位词
哈希表有效的字母异位词242. 有效的字母异位词 - 力扣(LeetCode) (leetcode-cn.com)题目不难,从这个题目里可以学习到一些Java的小操作和小细节。我的解法class Solution { public boolean isAnagram(String s, String t) { int[] letter_hash = new int[26]; int len_s = s.length(); int len_t原创 2022-04-15 14:05:19 · 660 阅读 · 0 评论 -
链表之环形链表
链表环形链表II142. 环形链表 II - 力扣(LeetCode) (leetcode-cn.com)本题是对判断链表是否有环的一个扩展。需要完成两个任务:判断是否有环,若有环则返回入环的第一个节点。若无环则返回null。本题采取快慢指针的方法解决。首先,设定一个快指针和一个慢指针,让快指针的速度是慢指针的2倍,如果两个指针相遇,则必有环,且此时慢指针必定走在环的第一圈中。那么相遇时: slow指针走过的节点数为: x + y, fast指针走过的节点数:x + y + n (y + z原创 2022-02-27 21:16:21 · 624 阅读 · 0 评论 -
链表之反转链表
链表反转链表206. 反转链表 - 力扣(LeetCode) (leetcode-cn.com)本题题目不难,但是做法却比较多,也比较基础,这里给出三种解法。头插法class Solution { public ListNode reverseList(ListNode head) {//头插即可 if (head == null || head.next == null) return head; ListNode p = new List原创 2021-12-29 19:00:17 · 276 阅读 · 0 评论 -
算法学习:链表之设计链表
链表设计链表707. 设计链表 - 力扣(LeetCode) (leetcode-cn.com)class MyLinkedList { int val; MyLinkedList next; MyLinkedList pre; public MyLinkedList() { this.val = 0; this.next = null; this.pre = null; } public MyLinked原创 2021-11-15 22:21:49 · 141 阅读 · 0 评论 -
数组之螺旋矩阵
数组螺旋矩阵59. 螺旋矩阵 II - 力扣(LeetCode) (leetcode-cn.com)class Solution { public int[][] generateMatrix(int n) { int res[][] = new int[n][n]; int k = 0; int left,right; for(left = 0,right = n - 1; left < right; ++left原创 2021-09-28 19:48:28 · 109 阅读 · 0 评论 -
长度最小的子数组
数组长度最小的子数组209. 长度最小的子数组 - 力扣(LeetCode) (leetcode-cn.com)本题利用滑动窗口的思路来解决。可以将复杂度从O(n^n)降到O(n)。当然,continue的目的是为了防止Sum在调整之后,还是不满足条件,所以再加一个判断。滑动窗口的思路,就是不断的调整子序列的初始位置和终止位置,适用于连续子序列问题。class Solution { public int minSubArrayLen(int target, int[] nums) {原创 2021-09-18 17:58:12 · 276 阅读 · 0 评论 -
数组专题之二分查找
数组二分查找704. 二分查找 - 力扣(LeetCode) (leetcode-cn.com)题解:class Solution { public int search(int[] nums, int target) { int mid; int left = 0, right = nums.length-1; while (left <= right){ // mid = (left + right) / 2;原创 2021-09-12 20:24:39 · 293 阅读 · 0 评论