自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 收藏
  • 关注

原创 102 交叉字符串(Interleaving String)

lintcode题号——29,难度——hard

2024-03-21 01:52:43 278

原创 101 不同的子序列(Distinct Subsequences)

lintcode题号——118,难度——medium

2024-03-21 01:52:03 326

原创 100 编辑距离(Edit Distance)

lintcode题号——119,难度——medium

2024-03-21 01:51:16 357

原创 99 最长公共子序列LCS(Longest Common Subsequence)

lintcode题号——77,难度——medium

2024-03-21 01:50:35 458

原创 98 单词拆分(Word Break)

lintcode题号——107,难度——medium

2024-03-21 01:49:46 396

原创 97 切分回文串II(Palindrome Partitioning II)

lintcode题号——108,难度——medium

2024-03-21 01:49:00 256

原创 96 最长上升子序列LIS(Longest Increasing Subsequence)

lintcode题号——76,难度——medium

2024-03-21 01:48:14 427

原创 95 跳跃游戏II(Jump Game II)

lintcode题号——117,难度——medium。

2024-03-21 01:47:13 312

原创 94 跳跃游戏(Jump Game)

lintcode题号——116,难度——medium。

2024-03-21 01:45:15 364

原创 93 爬楼梯(Climbing Stairs)

lintcode题号——111,难度——easy

2024-03-21 01:43:57 384

原创 92 最小路径和(Minimum Path Sum)

lintcode题号——110,难度——easy

2024-03-21 01:42:29 281

原创 91 不同的路径(Unique Paths)

lintcode题号——114,难度——easy

2024-02-21 19:06:23 399

原创 90 数字三角形(Triangle)

文章目录1 题目2 解决方案2.1 思路和图解2.1.1 遍历法和分治法2.1.2 带记忆化搜索的分治法2.1.3 至底向上的动态规划2.1.4 至顶向下的动态规划2.3 时间复杂度2.3.1 以树高h为基准计算2.3.2 以节点数n为基准计算2.4 空间复杂度3 源码3.1 遍历法3.2 分治法3.3 动态规划——带记忆化搜索的分治法3.4 动态规划——至底向上3.5 动态规划——至顶向下1 题目题目:数字三角形(Triangle)描述:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移

2022-05-09 23:28:08 949 1

原创 哈希表和堆的总结

文章目录用哈希表和堆处理的问题代码注意事项时间复杂度分析题目汇总用哈希表和堆处理的问题查询、插入、删除的操作要远多于其余的操作的情况下使用哈希表。在动态环境中需要快速获取最值的情况下使用堆。代码注意事项哈希表——insert:O(1),find:O(1),delete:O(1)closed hashing:一个位置只放一个元素,冲突的元素向后寻找空位放下。(缺点:由于find时有些元素被当作寻找正确元素的桥梁,所以在元素删除时候不能直接置空,而改为标记为delete,依然充当桥梁,多

2022-05-09 00:35:30 456

原创 89 合并k个排序链表-多路归并排序(Merge K Sorted Lists)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:合并k个排序链表(Merge K Sorted Lists)描述:合并 k 个排序链表(序列为升序序列),并且返回合并后的排序链表(序列为升序学列)。尝试分析和描述其复杂度。lintcode题号——104,难度——medium样例1:输入:lists = [2->4->null,null,-1->null]输出:-1->2->4->null解释:将2-&g

2022-05-09 00:28:10 582

原创 88 前K大数 II(Top k Largest Numbers II)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:前K大数 II(Top k Largest Numbers II)描述:实现一个数据结构,提供下面两个接口:1.add(number) 添加一个元素;2.topk() 返回此数据结构中最大的k个数字。当我们创建数据结构时,k是给定的。lintcode题号——545,难度——medium样例1:输入: s = new Solution(3);s.add(3)s.add(10)s.to

2022-05-09 00:26:18 195

原创 87 前K大数(Top k Largest Numbers)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:前K大数(Top k Largest Numbers)描述:在一个数组中找到前K大的数。lintcode题号——544,难度——medium样例1:输入: [3, 10, 1000, -99, 4, 100] 并且 k = 3输出: [1000, 100, 10]样例2:输入: [8, 7, 6, 5, 4, 3, 2, 1] 并且 k = 5输出: [8, 7, 6, 5, 4]

2022-05-09 00:25:37 293

原创 86 丑数II(Ugly Number II)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码3.1 优先队列方式3.2 三指针方式1 题目题目:丑数II(Ugly Number II)描述:如果一个数只有质数因子2,3,5 ,那么这个数是一个丑数。前10个丑数分别为 1, 2, 3, 4, 5, 6, 8, 9, 10, 12…设计一个算法,找出第N个丑数。我们可以认为 1 也是一个丑数。lintcode题号——4,难度——medium样例1:输入:n = 9输出:10解释:[1,2,3,4,5

2022-05-09 00:25:01 207

原创 85 丑数(Ugly Number)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:丑数(Ugly Number)描述:写一个程序来检测一个整数是不是丑数。丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数因为他包含了质因子 7。可以认为 1 是一个特殊的丑数。lintcode题号——517,难度——easy样例1:输入: num = 8 输出: true解释:8=2*2*2样例2:输入: num = 14 输出:

2022-05-09 00:24:16 189

原创 84 LRU缓存-最近最少使用策略(LRU Cache)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码3.1 双链表算法3.2 单链表算法1 题目题目:最近最少使用LRU缓存策略(LRU Cache)描述:为最近最少使用(LRU)缓存策略设计一个数据结构,它应该支持以下操作:获取数据和写入数据。get(key) 获取数据:如果缓存中存在key,则获取其数据值(通常是正数),否则返回-1。set(key, value) 写入数据:如果key还没有在缓存中,则设置或插入其数据值。当缓存达到上限,它应该在写入新数据之前删

2022-05-09 00:23:26 624

原创 83 重哈希(Rehashing)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:重哈希(Rehashing)描述:哈希表容量的大小在一开始是不确定的。如果哈希表存储的元素太多(如超过容量的十分之一),我们应该将哈希表容量扩大一倍,并将所有的哈希值重新安排。给定一个哈希表,返回重哈希后的哈希表。// 哈希函数int hashcode(int key, int capacity) { return key % capacity;}lintcode题号——129,难度—

2022-05-08 23:10:52 1986

原创 双指针算法总结

文章目录双指针算法处理的问题代码注意事项时间复杂度分析题目汇总双指针算法处理的问题在序列中寻找满足要求的多个数。(类似“两、三数和”等)验证序列是否满足某种条件。(类似”回文、交错“等)按照条件对序列进行划分。(划分成两区间、多区间等)代码注意事项两数和的题目(two sum)==,<=,> target,不同情况不同边界的判断语句不同;不同组合unique pairs的题目,去重方式是在产生一个结果后立刻跳过相同元素,不能在开头提前去重;求两数和最接近目标值的题目,

2022-05-08 22:56:03 368

原创 82 颜色分类II-彩虹排序(Sort Colors II)

文章目录1 题目2 解决方案2.1 思路2.2 图解2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:颜色分类II(Sort Colors II)描述:给定一个有n个对象(包括k种不同的颜色,并按照1到k进行编号)的数组,将对象进行分类使相同颜色的对象相邻,并按照1,2,…k的顺序进行排序。不能使用代码库中的排序函数来解决这个问题k <= nlintcode题号——143,难度——medium样例1:输入: [3,2,2,1,4] 4输出: [1,2,2,3,4]

2022-05-08 00:44:16 490

原创 81 颜色分类-荷兰旗问题(Sort Colors)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:颜色分类(Sort Colors)描述:给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。我们使用整数 0,1 和 2 分别代表红,白,蓝。不能使用代码库中的排序函数来解决这个问题。排序需要在原数组中进行。你不可以使用计数排序(Counting Sort)来完成这道题目。lintcode题号——148,难度——medium

2022-05-08 00:42:56 118

原创 80 交错正负数(Interleaving Positive and Negative Numbers)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:交错正负数(Interleaving Positive and Negative Numbers)描述:给出一个含有正整数和负整数的数组,重新排列成一个正负数交错的数组。不需要保持正整数或者负整数原来的顺序。lintcode题号——144,难度——medium样例1:输入 : [-1, -2, -3, 4, 5, 6]输出 : [-1, 5, -2, 4, -3, 6]解释 : 或者任何满足

2022-05-08 00:38:59 198

原创 79 字符大小写排序(Sort Letters by Case)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:字符大小写排序(Sort Letters by Case)描述:给定一个只包含字母的字符串 chars,按照先小写字母后大写字母的顺序进行排序。字母不一定要保持在原始字符串中的相对位置。lintcode题号——49,难度——medium样例1:输入:chars = "abAcD"输出:"acbAD"解释:你也可以返回"abcAD"或者"cbaAD"或者其他正确的答案。样例2:输入:ch

2022-05-08 00:38:10 232

原创 78 奇偶分割数组(Partition Array by Odd and Even)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:奇偶分割数组(Partition Array by Odd and Even)描述:分割一个整数数组,使得奇数在前偶数在后。lintcode题号——373,难度——easy样例1:输入: [1,2,3,4]输出: [1,3,2,4]样例2:输入: [1,4,2,3,5,6]输出: [1,3,5,4,2,6]2 解决方案2.1 思路  使用对向双指针的方式,两个指针分别从头尾开始

2022-05-08 00:37:39 186

原创 77 第k大元素(Kth Largest Element)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:第k大元素(Kth Largest Element)描述:在数组中找到第 k 大的元素。你可以交换数组中的元素的位置。lintcode题号——5,难度——medium样例1:输入:k = 1nums = [1,3,4,2]输出:4解释:第一大的元素是4样例2:输入:k = 3nums = [9,3,2,4,8]输出:4解释:第三大的元素是4。2 解决方案2.1 思路

2022-05-08 00:37:03 243

原创 76 无序数组K小元素(Kth Smallest Numbers in Unsorted Array)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:无序数组K小元素(Kth Smallest Numbers in Unsorted Array)描述:找到一个无序数组中第 K 小的数(K 从1开始)。lintcode题号——461,难度——medium样例1:输入: [3, 4, 1, 2, 5], k = 3输出: 3样例2:输入: [1, 1, 1], k = 2输出: 12 解决方案2.1 思路  可以通过排序找到第k

2022-05-08 00:36:15 160

原创 75 数组划分(Partition Array)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:数组划分(Partition Array)描述:给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:所有小于k的元素移到左边、所有大于等于k的元素移到右边,返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。你应该真正的划分数组 nums,而不仅仅只是计算比 k 小的整数数,如果数组 nums 中的所有元素都比 k 小,则返回 nu

2022-05-08 00:35:38 472

原创 74 两数之和-差等于目标值(Two Sum - Difference equals to target)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:两数和-差等于目标值(Two Sum - Difference equals to target)描述:给定一个排序后的整数数组,找到两个数的 差 等于目标值。你需要返回一个包含两个数字的列表 [num1, num2], 使得 num1 与 num2 的差为 target,同时 num1 必须小于 num2。假设只有一个答案。要求用O(1)空间复杂度完成。lintcode题号——610,难度——med

2022-05-07 00:14:14 316

原创 73 最接近的三数之和(3Sum Closest)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:最接近的三数之和(3Sum Closest)描述:给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。只需要返回三元组之和,无需返回三元组本身lintcode题号——59,难度——medium样例1:输入:numbers = [2,7,11,15]target = 3输出:20解释:2+7+11=20样例2:输入:numbers

2022-05-07 00:13:20 133

原创 72 两数之和-最接近值(Two Sum - Closest to target)

文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:两数和-最接近值(Two Sum - Closest to target)描述:给定整数数组num,从中找到两个数字使得他们和最接近target,返回两数和与 target 的差的 绝对值。lintcode题号——533,难度——medium样例1:输入: nums = [-1, 2, 1, -4] 并且 target = 4输出: 1解释:最小的差距是1,(4 - (2 + 1) = 1

2022-05-07 00:08:10 868

原创 71 两数之和-大于目标值(Two Sum - Greater than target)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:两数和-大于目标值(Two Sum - Greater than target)描述:给一组整数,问能找出多少对整数,他们的和大于一个给定的目标值。请返回答案。lintcode题号——443,难度——medium样例1:输入: [2, 7, 11, 15], target = 24输出: 1解释: 11 + 15 是唯一的一对样例2:输入: [1, 1, 1, 1], target =

2022-05-07 00:07:20 292 2

原创 70 两数之和-小于或等于目标值(Two Sum - Less than or equal to target)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:两数和-小于或等于目标值(Two Sum - Less than or equal to target)描述:给定一个整数数组,找出这个数组中有多少对的和是小于或等于目标值。返回对数。lintcode题号——609,难度——medium样例1:输入: nums = [2, 7, 11, 15], target = 24. 输出: 5. 解释:2 + 7 < 242 + 11 &lt

2022-05-07 00:06:42 570

原创 69 三角形计数(Triangle Count)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:三角形计数(Triangle Count)描述:给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?lintcode题号——382,难度——medium样例1:输入: [3, 4, 6, 7]输出: 3解释:可以组成的是 (3, 4, 6), (3, 6, 7), (4, 6, 7

2022-05-07 00:05:39 821

原创 68 三数之和(3Sum)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:三数之和(3Sum)描述:给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。三元组(a, b, c)要求a≤b≤c。结果不能包含重复的三元组。lintcode题号——57,难度——medium样例1:输入:numbers = [2,7,11,15]输出:[]解释:找不到三元组使得三个数和为0。样例2:输入:numbers =

2022-05-07 00:04:13 415

原创 67 两数之和-不同组成(Two Sum - Unique pairs)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:两数之和-不同组成(Two Sum - Unique pairs)描述:给一整数数组, 找到数组中有多少组 不同的元素对 有相同的和, 且和为给出的 target 值, 返回对数.lintcode题号——587,难度——medium样例1:输入: nums = [1,1,2,45,46,46], target = 47 输出: 2解释:1 + 46 = 472 + 45 = 47样例

2022-05-06 22:01:11 275 2

原创 66 两数之和-数据结构设计(Two Sum III - Data structure design)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:两数之和III-数据结构设计(Two Sum III - Data structure design)描述:设计并实现一个 TwoSum 类。他需要支持以下操作:add 和 find。add -把这个数添加到内部的数据结构。find -是否存在任意一对数字之和等于这个值lintcode题号——607,难度——easy样例1:add(1);add(3);add(5);find(4)//返回tru

2022-05-06 21:59:26 235

原创 65 两数之和-输入已排序的数组(Two Sum II - Input array is sorted)

文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:两数之和II-输入已排序的数组(Two Sum II - Input array is sorted)描述:给定一个已经 按升序排列 的数组,找到两个数使他们加起来的和等于特定数。函数应该返回这两个数的下标,index1必须小于index2。注意返回的值不是 0-based。可以假设每个输入刚好只有一个答案lintcode题号——608,难度——medium样例1:输入: nums = [2,

2022-05-06 21:57:12 144

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除