
LeetCode
文章平均质量分 51
力扣题
Fly upward
大家互相多多交流。现任职于某大厂测开职位
展开
-
[算法】查找元素
顺序查找是按照序列原有顺序对数组进行遍历比较查询的基本查找算法。二分查找又叫“折半查找”,通过一个有序数组一分为二,不断的缩小搜索区域,进而找到目标元素。原创 2022-08-01 19:29:29 · 716 阅读 · 10 评论 -
LeetCode-无重复字符的最长子串 -- Java
目录1.题目2.题解3.复杂度1.题目给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。题目来源:力扣(LeetCode)2.题解使用哈希来实现滑动窗口在左指针向右移动的时候,我们从哈希集合中移除一个字符,在右指针向右移动的时候,我们往哈希集合中添加一个字符。class Solution { public int lengthOfLongestSubstring(String s) { i...原创 2022-01-04 17:59:55 · 570 阅读 · 25 评论 -
LeetCode-从尾到头打印链表--Java
目录1.题目2.解法2.1栈2.2递归3.复杂度1.题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。题目来源:力扣(LeetCode)2.解法2.1栈栈的特点是先进后出,所以我们创建一个栈,逐个将节点压入栈内,然后建立一个数组,将栈内的节点数值逐个弹出class Solution { public int[] reversePrint(ListNode head) { Stack&l...原创 2022-01-03 18:09:41 · 367 阅读 · 13 评论 -
LeetCode-删除链表的倒数第 N 个结点--Java
目录1.题目2.解题3.复杂度1.题目给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。题目来源:力扣2.解题我们使用快慢指针来解题,建立一个傀儡节点就是防止删除的是傀儡节点fast 先走 n 步,到达删除前一个节点,然后 fast 和 slow 同时走,fast.next 为空时,slow就到删除前一个节点了、。class Solution { public ListNode remov...原创 2022-04-08 10:27:23 · 467 阅读 · 29 评论 -
LeetCode-链表的中间节点--Java
目录1.题目描述2.解法3.复杂度1.题目描述给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。题目来源:力扣(LeetCode)2.解法定义一个快指针 fast 和一个慢指针 slow ;fast 走两步, slow 走一步,当 fas t走到尽头时,slow 就刚好在中间节点。因为 fast 比slow 多走一半路程class Solution { public Li...原创 2021-12-31 11:11:53 · 176 阅读 · 15 评论 -
LeetCode-189. 轮转数组-Java
目录1.题目2.题解3.代码4.复杂度分析1.题目给你一个数组,将数组中的元素向右轮转k个位置,其中k是非负数题目来源:力扣(LeetCode)2.题解使用分割翻转法3.代码class Solution { public void rotate(int[] nums, int k) { k %= nums.length; reverse(nums, 0, nums.length - 1);/...原创 2022-01-07 12:39:34 · 570 阅读 · 16 评论 -
LeetCode-剑指 Offer 35. 复杂链表的复制-Java
1.题目请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof2.解法class Solution { public Node copyRandomList(No...原创 2021-12-25 16:13:09 · 865 阅读 · 14 评论 -
LeetCode-35. 搜索插入位置-Java
1.题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/search-insert-position2.题解使用二分查找法class Solution { public int searchInsert(int[] nums, int targ..原创 2021-12-28 13:37:43 · 307 阅读 · 14 评论 -
LeetCode-278. 第一个错误的版本-Java
public class Solution extends VersionControl { public int firstBadVersion(int n) { //遍历会超出时间限制,O(n) /* while (isBadVersion(n) != false) { n--; } return n+1; */ //使用二分查...原创 2021-12-26 11:10:44 · 191 阅读 · 15 评论 -
LeetCode--剑指 Offer II 026. 重排链表-- Java
目录1.题目2.解析3.代码1.题目给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0→ L1→ … → Ln-1→ Ln请将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→ …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。2.解析将一个链表分为两个子链表,然后将其归并。我们要先找到链表的中间节点,在中间节点将其断开然后反转后半链表再将两个子链表逐个连起来...原创 2021-12-24 10:17:43 · 823 阅读 · 14 评论