mybloger

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

合集-leetcode刷题

摘要:2、求最长不重复子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 class Solution { // 双指针算法 // 1、定义两个指针,一个在前,一个 阅读全文
posted @ 2024-09-07 21:11 万能包哥 阅读(27) 评论(0) 推荐(0)

摘要:leetcode刷题 1、大数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 输入:l1 = [2,4,3 阅读全文
posted @ 2024-09-06 22:19 万能包哥 阅读(34) 评论(0) 推荐(0)

摘要:LeetCode热题100 1、两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例 1: 输 阅读全文
posted @ 2025-06-01 10:33 万能包哥 阅读(45) 评论(0) 推荐(0)

摘要:leetCode100 第3,4题 3、无重复最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb 阅读全文
posted @ 2025-06-02 10:54 万能包哥 阅读(11) 评论(0) 推荐(0)

摘要:5、字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出: [["ba 阅读全文
posted @ 2025-06-03 19:48 万能包哥 阅读(7) 评论(0) 推荐(0)

摘要:7、移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums = [0] 阅读全文
posted @ 2025-06-04 19:25 万能包哥 阅读(6) 评论(0) 推荐(0)

摘要:9、三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。 注意 阅读全文
posted @ 2025-06-05 19:19 万能包哥 阅读(5) 评论(0) 推荐(0)

摘要:11、找到字符串中所有的字母异位词 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s = "cbaebabacd", p = "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 阅读全文
posted @ 2025-06-06 21:32 万能包哥 阅读(9) 评论(0) 推荐(0)

摘要:13、滑动窗口的最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 阅读全文
posted @ 2025-06-07 21:02 万能包哥 阅读(10) 评论(0) 推荐(0)

摘要:15、旋转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: 阅读全文
posted @ 2025-06-08 21:19 万能包哥 阅读(14) 评论(0) 推荐(0)

摘要:17、缺失的第一个数 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums = [1,2,0] 输出:3 解释:范围 [1,2] 中的数字都在数组中。 示例 2: 输入:nums 阅读全文
posted @ 2025-06-09 21:31 万能包哥 阅读(11) 评论(0) 推荐(0)

摘要:19、螺旋矩阵 class Solution { public List<Integer> spiralOrder(int[][] matrix) { List<Integer> order = new ArrayList<Integer>(); if (matrix == null || matr 阅读全文
posted @ 2025-06-10 21:07 万能包哥 阅读(11) 评论(0) 推荐(0)

摘要:21、搜索二维矩阵 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 /** 从右上角搜索,如果 (row,col) > target,则 col--,(row,col) < t 阅读全文
posted @ 2025-06-11 20:37 万能包哥 阅读(39) 评论(0) 推荐(0)

摘要:23、链表反转 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() 阅读全文
posted @ 2025-06-12 21:02 万能包哥 阅读(9) 评论(0) 推荐(0)

摘要:25、环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val 阅读全文
posted @ 2025-06-13 20:31 万能包哥 阅读(10) 评论(0) 推荐(0)

摘要:27、合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode 阅读全文
posted @ 2025-06-14 20:56 万能包哥 阅读(11) 评论(0) 推荐(0)

摘要:29、两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 /** * Definition for singly-linked list. * public class ListNode { * 阅读全文
posted @ 2025-06-15 20:32 万能包哥 阅读(8) 评论(0) 推荐(0)

摘要:31、随机链表的复制 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指 阅读全文
posted @ 2025-06-16 20:42 万能包哥 阅读(6) 评论(0) 推荐(0)

摘要:33、合并K个升序列表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNod 阅读全文
posted @ 2025-06-17 21:17 万能包哥 阅读(16) 评论(0) 推荐(0)

摘要:35、二叉树的中序遍历 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode 阅读全文
posted @ 2025-06-18 20:32 万能包哥 阅读(6) 评论(0) 推荐(0)

摘要:37、翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode 阅读全文
posted @ 2025-06-19 20:32 万能包哥 阅读(6) 评论(0) 推荐(0)

摘要:39、二叉树的直径 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 /** * Definition for a binary tree node 阅读全文
posted @ 2025-06-20 21:00 万能包哥 阅读(6) 评论(0) 推荐(0)

摘要:41、有序数组转为二叉搜索树 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNo 阅读全文
posted @ 2025-06-21 20:28 万能包哥 阅读(7) 评论(0) 推荐(0)

摘要:43、二叉树第K小的元素 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 /** * Definition for a binary tree node. * public class TreeNode { * int val 阅读全文
posted @ 2025-06-22 20:41 万能包哥 阅读(8) 评论(0) 推荐(0)

摘要:45、二叉树转成单链表 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNod 阅读全文
posted @ 2025-06-23 21:20 万能包哥 阅读(9) 评论(0) 推荐(0)

摘要:47、路径总和 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 /** * Definition for a 阅读全文
posted @ 2025-06-30 20:15 万能包哥 阅读(4) 评论(0) 推荐(0)

摘要:49、二叉树中的最大路径和 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root ,返回其 最大路径和 。 示例 1 阅读全文
posted @ 2025-07-02 20:43 万能包哥 阅读(7) 评论(0) 推荐(0)

摘要:51、腐烂的橘子 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可 阅读全文
posted @ 2025-07-04 20:42 万能包哥 阅读(8) 评论(0) 推荐(0)

摘要:53、实现前缀树 Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。 请你实现 Trie 类: Trie() 初始化前缀树对象。 void insert(String word) 向前缀 阅读全文
posted @ 2025-07-09 22:16 万能包哥 阅读(6) 评论(0) 推荐(0)

摘要:55、子集 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3] 阅读全文
posted @ 2025-07-10 21:47 万能包哥 阅读(10) 评论(0) 推荐(0)

摘要:57、组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重 阅读全文
posted @ 2025-07-11 21:15 万能包哥 阅读(11) 评论(0) 推荐(0)

摘要:59、分割回文串 给你一个字符串 s,请你将 s 分割成一些 子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1: 输入:s = "aab" 输出:[["a","a","b"],["aa","b"]] 示例 2: 输入:s = "a" 输出:[["a"]] class Solu 阅读全文
posted @ 2025-07-20 22:28 万能包哥 阅读(9) 评论(0) 推荐(0)

摘要:61、搜索插入的位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution { public int searchInsert(int[] nums, 阅读全文
posted @ 2025-07-21 20:00 万能包哥 阅读(9) 评论(0) 推荐(0)

摘要:63、在排序数组中查找元素的第一个位置和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解 阅读全文
posted @ 2025-07-27 20:41 万能包哥 阅读(8) 评论(0) 推荐(0)

摘要:65、搜索旋转排序数组 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], n 阅读全文
posted @ 2025-08-01 21:32 万能包哥 阅读(10) 评论(0) 推荐(0)

摘要:67、有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 class Solution { public b 阅读全文
posted @ 2025-08-06 23:29 万能包哥 阅读(5) 评论(0) 推荐(0)

摘要:69、字符串解码 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式 阅读全文
posted @ 2025-08-10 14:10 万能包哥 阅读(10) 评论(0) 推荐(0)

摘要:71、柱状图中最大矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights = [2,1,5,6,2,3] 输出:10 解释:最大的矩形为图中红色区域,面积为 10 class S 阅读全文
posted @ 2025-08-17 22:24 万能包哥 阅读(13) 评论(0) 推荐(0)

摘要:LeetCode热题100-73题、前K个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 class Solution { public int[] topKFrequent(int[] nums, int k) { // 阅读全文
posted @ 2025-10-07 16:44 万能包哥 阅读(7) 评论(0) 推荐(0)

摘要:中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr = [2,3,4] 的中位数是 3 。 例如 arr = [2,3] 的中位数是 (2 + 3) / 2 = 2.5 。 实现 MedianFinder 类: MedianFinder() 阅读全文
posted @ 2025-10-08 18:22 万能包哥 阅读(7) 评论(0) 推荐(0)

摘要:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 阅读全文
posted @ 2025-10-09 17:35 万能包哥 阅读(5) 评论(0) 推荐(0)

摘要:给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 class Solution { public boolean canJump(int[] n 阅读全文
posted @ 2025-10-10 16:15 万能包哥 阅读(7) 评论(0) 推荐(0)