力扣
文章平均质量分 60
每天练习
每天更新
天地神仙
这个作者很懒,什么都没留下…
展开
-
LeetCode——1.两数之和
一、题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum二、java解原创 2020-12-08 14:56:58 · 171 阅读 · 0 评论 -
LeetCode——目录
目录原创 2020-12-10 22:40:14 · 405 阅读 · 0 评论 -
LeetCode——3. 无重复字符的最长子串
3. 无重复字符的最长子串原创 2023-02-26 23:49:44 · 90 阅读 · 0 评论 -
LeetCode——7.整数反转
一、题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-integer原创 2020-12-09 22:33:30 · 128 阅读 · 0 评论 -
LeetCode——19. 删除链表的倒数第 N 个结点
一、题目给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list二、思路本题可以采用双指针原创 2022-02-13 22:42:27 · 564 阅读 · 0 评论 -
LeetCode——35. 搜索插入位置
一、题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,3,5,6], t原创 2022-02-09 21:30:36 · 704 阅读 · 0 评论 -
LeetCode——46. 全排列
46. 全排列原创 2023-02-18 21:33:58 · 90 阅读 · 0 评论 -
LeetCode——48.旋转图像
一、题目给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 matrix =[[ 5, 1, 9,11],[ 2, 4, 8,10],[13, 3, 6, 7],[1原创 2020-12-19 20:29:23 · 122 阅读 · 2 评论 -
LeetCode——49.字母异位词分组
一、题目给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/group-anagrams二、java解法原创 2020-12-14 19:33:30 · 134 阅读 · 0 评论 -
LeetCode——51. N 皇后
51. N 皇后原创 2023-02-19 23:13:59 · 160 阅读 · 0 评论 -
LeetCode——62.不同路径
一、题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -> 向下 -> 向右向下 -> 向右原创 2020-12-12 22:14:10 · 189 阅读 · 0 评论 -
LeetCode——76. 最小覆盖子串
76. 最小覆盖子串原创 2023-02-23 17:27:50 · 131 阅读 · 0 评论 -
LeetCode——85.最大矩形
一、题目给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例 1:输入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出:6解释:最大矩形如上图所示。示例 2:输入:matrix = []输出:0示例 3:输入:matrix = [[“0”]]输出:0示例 4原创 2020-12-26 19:21:04 · 120 阅读 · 0 评论 -
LeetCode——86.分隔链表
一、题目给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入:head = 1->4->3->2->5->2, x = 3输出:1->2->2->4->3->5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/partition-list二、java解法/** *原创 2021-01-03 19:32:47 · 108 阅读 · 0 评论 -
LeetCode——89.格雷编码
一、题目n 位格雷码序列 是一个由 2n 个整数组成的序列,其中:每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1)第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 ,且第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n ,返回任一有效的 n 位格雷码序列 。示例 1:输入:n = 2输出:[0,1,3,2]解释:[0,1,3,2] 的二进制表示是 [00,01,11,10] 。00 和 01 有一原创 2022-01-08 22:58:05 · 646 阅读 · 0 评论 -
LeetCode——103.二叉树的锯齿形层序遍历
一、题目给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回锯齿形层序遍历如下:[[3],[20,9],[15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal二、原创 2020-12-22 22:14:18 · 208 阅读 · 0 评论 -
LeetCode——104. 二叉树的最大深度
104. 二叉树的最大深度原创 2023-02-20 22:35:59 · 229 阅读 · 0 评论 -
LeetCode——111. 二叉树的最小深度
111. 二叉树的最小深度原创 2023-02-20 22:37:41 · 82 阅读 · 0 评论 -
LeetCode——122.买卖股票的最佳时机
一、题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价原创 2020-12-17 18:32:51 · 120 阅读 · 0 评论 -
LeetCode——123.买卖股票的最佳时机
一、题目给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入:prices = [3,3,5,0,0,3,1,4]输出:6解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票原创 2021-01-09 23:35:08 · 147 阅读 · 1 评论 -
LeetCode——135.分发糖果
一、题目老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。示例 2:输入: [1,2,2]输出: 4解释: 你可以分别给这三个孩子分发 1、2、1 颗糖果。第三个孩子只得原创 2020-12-24 23:59:38 · 129 阅读 · 0 评论 -
LeetCode——141. 环形链表
141. 环形链表原创 2023-02-22 21:46:21 · 122 阅读 · 0 评论 -
LeetCode——142. 环形链表 II
142. 环形链表 II原创 2023-02-22 22:18:30 · 121 阅读 · 0 评论 -
LeetCode——145. 二叉树的后序遍历
145. 二叉树的后序遍历原创 2023-02-06 17:42:07 · 85 阅读 · 0 评论 -
Leetcode——151.翻转字符串
一、题目给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单词 。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。示例 1:输入:“the sky is blue”输出:“blue is sky the”示例 2:输入:" hello world! "输出:“world! hello”解释:输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输原创 2020-12-10 22:36:04 · 180 阅读 · 0 评论 -
LeetCode——167. 两数之和 II - 输入有序数组
一、题目给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。你可以假设每个输入 只对应唯一的答原创 2022-02-13 23:12:55 · 278 阅读 · 0 评论 -
LeetCode——188.买卖股票的最佳时机
一、题目给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入:k = 2, prices = [2,4,1]输出:2解释:在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2 。示例 2:输入:k = 2原创 2020-12-28 22:06:33 · 132 阅读 · 0 评论 -
LeetCode——189. 轮转数组
一、题目给你一个数组,将数组中的元素向右轮转 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 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例 2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]解释:向右轮转 1 步: [99原创 2022-02-13 23:35:58 · 155 阅读 · 0 评论 -
LeetCode——205.同构字符串
一、题目给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = “egg”, t = “add”输出: true示例 2:输入: s = “foo”, t = “bar”输出: false示例 3:输入: s = “paper”, t = “title”输出: true说明:你可以假原创 2020-12-27 19:12:00 · 153 阅读 · 0 评论 -
LeetCode——217.存在重复元素
一、题目给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/contains-duplicate二、jav原创 2020-12-13 19:35:49 · 175 阅读 · 0 评论 -
LeetCode——239.滑动窗口最大值
一、题目给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 3原创 2021-01-03 19:36:18 · 123 阅读 · 0 评论 -
LeetCode——278. 第一个错误的版本
一、题目你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例 1:输入:n = 5,原创 2022-02-09 21:43:01 · 129 阅读 · 0 评论 -
LeetCode——283. 移动零
一、题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes二、思路定义双指针,快慢指针同时指向head,然后同时前进,当快指针原创 2022-02-13 23:29:42 · 507 阅读 · 0 评论 -
LeetCode——290.单词规律
一、题目给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = “abba”, str = “dog cat cat dog”输出: true示例 2:输入:pattern = “abba”, str = “dog cat cat fish”输出: false示例 3:输入: pattern =原创 2020-12-16 22:42:37 · 166 阅读 · 0 评论 -
LeetCode——300. 最长递增子序列
300. 最长递增子序列原创 2023-02-27 22:30:46 · 100 阅读 · 0 评论 -
LeetCode——316.去除重复字母
一、题目给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。注意:该题与 1081 https://leetcode-cn.com/problems/smallest-subsequence-of-distinct-characters 相同示例 1:输入:s = “bcabc”输出:“abc”示例 2:输入:s = “cbacdcbc”输出:“acdb”提示:1 <= s.length <原创 2020-12-20 15:43:04 · 143 阅读 · 1 评论 -
LeetCode——330.按要求补齐数组
一、题目给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。示例 1:输入: nums = [1,3], n = 6输出: 1解释:根据 nums 里现有的组合 [1], [3], [1,3],可以得出 1, 3, 4。现在如果我们将 2 添加到 nums 中, 组合变为: [1], [2], [3], [原创 2020-12-30 22:14:08 · 154 阅读 · 0 评论 -
LeetCode——344. 反转字符串
一、题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]提示:1 <= s.length <= 105原创 2022-02-13 22:57:26 · 100 阅读 · 0 评论 -
LeetCode——387.字符串中的第一个唯一字符
一、题目给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2提示:你可以假定该字符串只包含小写字母。二、java解法1.遍历两遍哈希表class Solution { public int firstUniqChar(String s) { Map<Character, Integer> frequency = new HashMap原创 2020-12-23 10:21:22 · 129 阅读 · 0 评论 -
LeetCode——389.找不同
一、题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例 1:输入:s = “abcd”, t = “abcde”输出:“e”解释:‘e’ 是那个被添加的字母。示例 2:输入:s = “”, t = “y”输出:“y”示例 3:输入:s = “a”, t = “aa”输出:“a”示例 4:输入:s = “ae”, t = “aea”输出:“a”提示:0 <= s.len原创 2020-12-18 16:23:23 · 179 阅读 · 1 评论