LeetCode
文章平均质量分 62
窗燃烟逝
这个作者很懒,什么都没留下…
展开
-
CodeTop 1-20
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。返回你可以从这笔交易中获取的最大利润。新链表是通过拼接给定的两个链表的所有节点组成的。原创 2022-11-01 23:23:30 · 273 阅读 · 1 评论 -
W7_回溯
代码随想录的回溯原创 2022-07-01 16:54:22 · 64 阅读 · 0 评论 -
W6_二叉树
代码随想录二叉树部分原创 2022-06-29 22:11:40 · 118 阅读 · 0 评论 -
W5_栈和队列
代码随想录的栈和队列原创 2022-06-14 18:38:49 · 63 阅读 · 0 评论 -
W3_哈希表习题
代码随想录的哈希表练习原创 2022-06-08 13:08:17 · 90 阅读 · 0 评论 -
剑指 Offer 笔记: T4. 二维数组中的查找
T4. 二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target原创 2021-04-19 19:48:03 · 71 阅读 · 0 评论 -
剑指 Offer 笔记: T5. 替换空格
T5. 替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000思路遍历字符串, 当有空格就把空格替换为"%20"创建另一个字符串, 加进去如果原地置换, 有办法吗?我的解法class Solution { public String replaceSpace(String s) { String原创 2021-04-19 19:53:33 · 69 阅读 · 0 评论 -
剑指 Offer 笔记: T58 - I. 翻转单词顺序
T58 - I. 翻转单词顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余转载 2021-04-30 11:04:39 · 82 阅读 · 0 评论 -
剑指 Offer 笔记: T57 - II. 和为 s 的连续正数序列
T57 - II. 和为 s 的连续正数序列输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5解法 1没做出来解法 2class Solution {转载 2021-04-29 11:07:11 · 82 阅读 · 0 评论 -
剑指 Offer 笔记: T17. 打印从 1 到最大的 n 位数
T17. 打印从 1 到最大的 n 位数输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印n 为正整数我的解法class Solution { public int[] printNumbers(int n) { int m = 0; int i = 1;原创 2021-04-25 17:10:33 · 55 阅读 · 0 评论 -
剑指 Offer 笔记: T21. 调整数组顺序使奇数位于偶数前面
T21. 调整数组顺序使奇数位于偶数前面输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。提示:0 <= nums.length <= 500001 <= nums[i] <= 10000我的解法class Solution { public int[] exchange转载 2021-04-26 11:51:43 · 58 阅读 · 0 评论 -
剑指 Offer 笔记: T39. 数组中出现次数超过一半的数字
T.39 数组中出现次数超过一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000思路用二分的手法, 最后中间的数就是这个数字解法 1 直接排序class Solution { public int majorityElement(int[] nums) {原创 2021-04-28 15:00:38 · 57 阅读 · 0 评论 -
剑指 Offer 笔记: T58 - II. 左旋转字符串
T58 - II. 左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrlose”限制:1 <= k < s.length <原创 2021-04-30 11:09:15 · 68 阅读 · 0 评论 -
剑指 Offer 笔记: T3. 数组中重复的数字
题三: 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000目录题三: 数组中重复的数字我的解法他人解法 1 哈希集合他人解法 2 原地置换他人解法 3 先排序学到我的解法class Solut原创 2021-04-07 23:39:29 · 87 阅读 · 0 评论 -
剑指 Offer 笔记: T11. 旋转数组的最小数字
T11. 旋转数组的最小数字把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0我的解法直接排序且返回class Solution { public int minArray(int[] numbers) {原创 2021-04-25 17:08:39 · 65 阅读 · 0 评论 -
剑指 Offer 笔记: T45. 把数组排成最小的数
T45. 把数组排成最小的数输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: “102”示例 2:输入: [3,30,34,5,9]输出: “3033459”提示:0 < nums.length <= 100说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0解法 1没做出来解法 2class Solutio转载 2021-04-28 15:02:45 · 85 阅读 · 0 评论 -
剑指 Offer 笔记: T53 - II. 0~n-1 中缺失的数字
T53 - II. 0~n-1 中缺失的数字一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8限制:1 <= 数组长度 <= 10000思路二分, 原地置换, 看对应的是不是那个数解法 1class Solution { publi原创 2021-04-28 15:05:03 · 60 阅读 · 0 评论 -
剑指 Offer 笔记: T57 - I. 和为 s 的两个数字
T57 - I. 和为 s 的两个数字输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]限制:1 <= nums.length <= 10^51 <= nu原创 2021-04-29 11:05:12 · 71 阅读 · 0 评论 -
剑指 Offer 笔记: T29. 顺时针打印矩阵
T29. 顺时针打印矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 <= matrix[i].转载 2021-04-26 11:52:43 · 84 阅读 · 0 评论 -
剑指 Offer 笔记: T53 - I. 在排序数组中查找数字
T53 - I. 在排序数组中查找数字 I统计一个数字在排序数组中出现的次数。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长度 <= 50000思路二分, 寻找target和target-1的右边界, 相减就是答案了解法 1class Solution { public int search原创 2021-04-28 15:03:53 · 45 阅读 · 0 评论 -
数据结构与算法之美 笔记: 数组
目录数组 Array如何实现随机访问定义易错点: 数组和链表的区别低效的“插入”和“删除”插入操作删除操作警惕数组的访问越界问题容器能否完全替代数组?ArrayList 的优势数组的优势数组 Array如何实现随机访问定义数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。第一是线性表(Linear List)。顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。第二个是原创 2021-04-09 23:43:43 · 102 阅读 · 0 评论 -
数据结构与算法之美 笔记: 01. 入门篇
巨推!!! 好课强推!!!链接如下:https://time.geekbang.org/column/126介绍要思考写的代码性能的好坏数据结构指数据的存储结构, 算法是操作数据的一组方法这里面有 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树;10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。要学习它的“来历”“自身的特点”“适合解决的问题”以及“实际的应用场景”学习知识是不断迭代不断沉淀的过程掌原创 2021-04-05 23:40:32 · 58 阅读 · 0 评论 -
LeetCode 12: 剑指 Offer 22. 链表中倒数第k个节点 (简单); 19. 删除链表的倒数第 N 个结点 (中等); 160. 相交链表(简单)
文章目录T10: 剑指 Offer 22. 链表中倒数第k个节点 (简单)网址思路解法 1: 双指针易错点:T11: 19. 删除链表的倒数第 N 个结点 (中等)网址思路解法 1: 双指针易错点:T12: 160. 相交链表(简单)网址思路解法 1: 哈希集合易错点:T10: 剑指 Offer 22. 链表中倒数第k个节点 (简单)网址https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof输入一个链原创 2021-06-08 16:13:48 · 61 阅读 · 0 评论 -
LeetCode 11: 234. 回文链表 (中等); 328. 奇偶链表(中等); 25. K 个一组翻转链表(困难)
文章目录T7: 234. 回文链表 (中等)网址思路解法 1: 双指针易错点:T8: 328. 奇偶链表(中等)网址思路解法 1: 双指针易错点:T9: 25. K 个一组翻转链表(困难)网址思路解法 1: 创建首链表易错点:T7: 234. 回文链表 (中等)网址https://leetcode-cn.com/problems/palindrome-linked-list/请判断一个链表是否为回文链表。示例 1输入: 1->2输出: false示例 2:输入: 1->2-&原创 2021-06-08 15:48:54 · 86 阅读 · 0 评论 -
LeetCode 10: 斐波那契数列 ; 青蛙跳台阶问题 ; 三步问题
文章目录T1[X]: 剑指 Offer 10- I. 斐波那契数列 (简单)网址思路解法 1: 循环求余法易错点:T2: 剑指 Offer 10- II. 青蛙跳台阶问题(简单)网址思路解法 1: 循环取余法易错点:T3: 面试题 08.01. 三步问题 (简单)网址思路解法 1:易错点:T1[X]: 剑指 Offer 10- I. 斐波那契数列 (简单)网址https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/写一个函数,输入 n ,原创 2021-05-31 14:38:41 · 290 阅读 · 0 评论 -
LeetCode 09: 剑指 Offer 25. 合并两个排序的链表 (中等); T2. 两数相加 (中等); T206. 反转链表 (中等)
文章目录T4: 剑指 Offer 25. 合并两个排序的链表 (中等)网址思路解法 1: 伪头点易错点:T5: 2. 两数相加 (中等)网址思路解法 1[X]:易错点:T6 [X]: 206. 反转链表 (中等)网址思路解法 1:迭代解法 2: 递归T4: 剑指 Offer 25. 合并两个排序的链表 (中等)网址https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof输入两个递增排序的链表,合并这两个链表并原创 2021-05-26 11:30:47 · 119 阅读 · 2 评论 -
LeetCode 08: T203. 移除链表元素 (简单); T876. 链表的中间结点(简单); T83. 删除排序链表中的重复元素(简单)
文章目录T1: 203. 移除链表元素 (简单)网址思路解法 1:易错点:T2: 876. 链表的中间结点(简单)网址思路解法 1: 数组解法 2[X]: 单指针法解法 3: 双指针易错点:T3: 83. 删除排序链表中的重复元素(简单)网址思路解法 1:易错点:T1: 203. 移除链表元素 (简单)网址https://leetcode-cn.com/problems/remove-linked-list-elements/给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满原创 2021-05-25 11:58:32 · 116 阅读 · 0 评论 -
LeetCode 07: T48. 旋转图像 (中等); T54. 螺旋矩阵(中等); T240. 搜索二维矩阵 II (中等)
文章目录T19: 48. 旋转图像 (中等)思路解法 1: 新增数组解法 2: 原地旋转T20: 54. 螺旋矩阵(中等)思路解法: 到边界换方向T21: 240. 搜索二维矩阵 II (中等)思路解法:T19: 48. 旋转图像 (中等)给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[原创 2021-05-15 11:34:17 · 161 阅读 · 0 评论 -
LeetCode 06: 面试题 16.15. 珠玑妙算 (中等); 面试题 16.04. 井字游戏(中等); T55. 跳跃游戏 (中等)
T16: 面试题 16.15. 珠玑妙算 (中等)珠玑妙算游戏(the game of master mind)的玩法如下。计算机有4个槽,每个槽放一个球,颜色可能是红色(R)、黄色(Y)、绿色(G)或蓝色(B)。例如,计算机可能有RGGB 4种(槽1为红色,槽2、3为绿色,槽4为蓝色)。作为用户,你试图猜出颜色组合。打个比方,你可能会猜YRGB。要是猜对某个槽的颜色,则算一次“猜中”;要是只猜对颜色但槽位猜错了,则算一次“伪猜中”。注意,“猜中”不能算入“伪猜中”。给定一种颜色组合solution和原创 2021-05-14 14:23:53 · 90 阅读 · 4 评论 -
LeetCode 05: 剑指 Offer 61. 扑克牌中的顺子 (中等); 面试题 16.11. 跳水板(简单); 面试题 01.05. 一次编辑(中等)
文章目录T13: 剑指 Offer 61. 扑克牌中的顺子 (中等)思路解法: 很巧妙, 减5T14: 面试题 16.11. 跳水板(简单)思路解法:T15: 面试题 01.05. 一次编辑(中等)思路解法: 双指针T13: 剑指 Offer 61. 扑克牌中的顺子 (中等)从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: [1,2,3,4,5]输原创 2021-05-13 17:36:03 · 86 阅读 · 4 评论 -
LeetCode 04: T26. 删除排序数组中的重复项(简单); 剑指 Offer 67. 把字符串转换成整数(中等); 面试题 01.08. 零矩阵 (简单)
文章目录T10: 26. 删除排序数组中的重复项(简单)思路:解法: 双指针T11: 剑指 Offer 67. 把字符串转换成整数(中等)思路:解法: 没搞懂T12: 面试题 01.08. 零矩阵 (简单)思路解法: boolean 标记T10: 26. 删除排序数组中的重复项(简单)给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为原创 2021-05-13 17:32:14 · 69 阅读 · 0 评论 -
LeetCode 03: T58. 最后一个单词的长度(简单); 剑指 Offer 05. 替换空格(简单); 剑指 Offer 58 - II. 左旋转字符串(简单)
文章目录T7: 58. 最后一个单词的长度(简单)思路解法: 双指针T8: 剑指 Offer 05. 替换空格(简单)思路解法: replaceT9: 剑指 Offer 58 - II. 左旋转字符串(简单)思路解法:T7: 58. 最后一个单词的长度(简单)给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = "Hello World"输出:原创 2021-05-10 14:52:08 · 124 阅读 · 0 评论 -
LeetCode 02: 剑指 Offer 58 - I. 翻转单词顺序(简单); T123. 验证回文串 ; T9. 回文数
文章目录T4: 剑指 Offer 58 - I. 翻转单词顺序(简单)思路:解法:T5: 125. 验证回文串 (简单)思路:解法 1: 把字符串反转对比解法 2: 原地比较双指针T6: 9. 回文数(简单)思路:解法: 双指针T4: 剑指 Offer 58 - I. 翻转单词顺序(简单)思路:双指针法, 两个指针倒着, 遇到空格就跳过. 注意最后去除首位空格, 多用 while解法:class Solution { public String reverseWords(String s)原创 2021-05-08 15:32:10 · 120 阅读 · 0 评论 -
LeetCode 01: T1. 两数之和 ; T1108. IP 地址无效化 ; T344. 反转字符串
目录T1: 1. 两数之和(简单)思路:解法 1: 暴力枚举解法 2: 哈希表T2: 1108. IP 地址无效化(简单)思路:解法: 直接 replaceT3: 344. 反转字符串(简单)思路:解法: 双指针T1: 1. 两数之和(简单)思路:直接寻找差值或求和能达到target的数字解法 1: 暴力枚举class Solution { public int[] twoSum(int[] nums, int target) { for(int i = 0; i<n原创 2021-05-07 17:12:05 · 127 阅读 · 1 评论