随笔分类 -  刷题笔记: LeetCode

摘要:三路快排是快速排序算法的升级版,用来处理有大量重复数据的数组。 主要思想是选取一个key,小于key的丢到左边,大于key的丢到右边,递归实现即可。 具体操作过程参考:https://blog.csdn.net/k_koris/article/details/80585979 C++代码: // A 阅读全文
posted @ 2020-10-14 19:07 RioTian 阅读(221) 评论(2) 推荐(1) 编辑
摘要:354. 俄罗斯套娃信封问题 很多算法问题都需要排序技巧,其难点不在于排序本身,而是需要巧妙地排序进行预处理,将算法问题进行转换,为之后的操作打下基础。 信封嵌套问题就需要先按特定的规则排序,之后就转换为一个 最长递增子序列问题,可以再使用 二分查找详解 的技巧来解决。 一、题目概述 信封嵌套问题是 阅读全文
posted @ 2020-09-16 18:56 RioTian 阅读(419) 评论(0) 推荐(0) 编辑
摘要:我把双指针技巧再分为两类,一类是「快慢指针」,一类是「左右指针」。前者解决主要解决链表中的问题,比如典型的判定链表中是否包含环;后者主要解决数组(或者字符串)中的问题,比如二分查找。 一、快慢指针的常见算法 快慢指针一般都初始化指向链表的头结点 head,前进时快指针 fast 在前,慢指针 slo 阅读全文
posted @ 2020-09-11 21:23 RioTian 阅读(1538) 评论(0) 推荐(1) 编辑
摘要:5436. 一维数组的动态和 时间复杂度:O(n) 知识点:前缀和 根据题目给出的公式 runningSum[i] = sum(nums[0]…nums[i]),可得: 当 i > 0 时,runningSum[i] = runningSum[i-1] + nums[i] 当 i = 0 时,run 阅读全文
posted @ 2020-06-16 20:58 RioTian 阅读(235) 评论(0) 推荐(0) 编辑
摘要:"A题:" 给你两个整数数组 (开始时间)和 (结束时间),并指定一个整数 作为查询时间。 已知,第 i 名学生在 时开始写作业并于 时完成作业。 请返回在查询时间 时正在做作业的学生人数。形式上,返回能够使 处于区间 (含)的学生人数。 示例 1: 示例 2: 示例 3: 示例 4: 示例 5: 阅读全文
posted @ 2020-05-17 13:17 RioTian 阅读(164) 评论(0) 推荐(0) 编辑
摘要:"A题链接" 给你一个目标数组 target 和一个整数 n。每次迭代,需要从 list = {1,2,3..., n} 中依序读取一个数字。 请使用下述操作来构建目标数组 target : Push:从 list 中读取一个新元素, 并将其推入数组中。 Pop:删除数组中的最后一个元素。 如果目标 阅读全文
posted @ 2020-05-10 13:35 RioTian 阅读(293) 评论(0) 推荐(0) 编辑
摘要:给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 阅读全文
posted @ 2020-05-04 07:14 RioTian 阅读(176) 评论(0) 推荐(0) 编辑
摘要:给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 示例 2: 解法: BFS实现 阅读全文
posted @ 2020-05-02 20:58 RioTian 阅读(149) 评论(0) 推荐(0) 编辑
摘要:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的 原地 算法。 三种解法: 阅读全文
posted @ 2020-04-10 16:36 RioTian 阅读(112) 评论(0) 推荐(0) 编辑
摘要:给定一个字符串,逐个翻转字符串中的每个单词。 示例 1: 示例 2: 示例 3: 说明: 无空格字符构成一个单词。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 实现代码: 阅读全文
posted @ 2020-04-10 09:27 RioTian 阅读(132) 评论(0) 推荐(0) 编辑
摘要:给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例 1: 示例 2: 提示: 每个字符串仅由字符 '0' 或 '1' 组成。 1 字符串如果不是 "0" ,就都不含前导零。 阅读全文
posted @ 2020-04-08 11:43 RioTian 阅读(168) 评论(0) 推荐(0) 编辑
摘要:给定一组 不含重复元素 的整数数组 nums ,返回该数组所有可能的子集(幂集)。 说明: 解集不能包含重复的子集。 示例: 在它们的指数级解法中,要确保生成的结果 完整 且 无冗余 ,有三种常用的方法: 递归 回溯 基于二进制位掩码和对应位掩码之间的映射字典生成排列/组合/子集(位运算) 位运算解 阅读全文
posted @ 2020-04-03 10:12 RioTian 阅读(119) 评论(0) 推荐(1) 编辑
摘要:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 示例 2: 挺简单的,因为楼主之前就常用位运算符就很快解出来了 使用无序map(比map明显加快很多100ms 阅读全文
posted @ 2020-04-02 21:05 RioTian 阅读(176) 评论(0) 推荐(1) 编辑
摘要:记录dalao的位运算骚操作 根据百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞 阅读全文
posted @ 2020-04-02 16:28 RioTian 阅读(310) 评论(0) 推荐(0) 编辑
摘要:请你实现一个类 UndergroundSystem ,它支持以下 3 种方法: 1. 编号为 id 的乘客在 t 时刻进入地铁站 stationName 。 一个乘客在同一时间只能在一个地铁站进入或者离开。 2. 编号为 id 的乘客在 t 时刻离开地铁站 stationName 。 3. 返回从地 阅读全文
posted @ 2020-03-29 13:17 RioTian 阅读(295) 评论(0) 推荐(0) 编辑
摘要:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 解法: 归并法 解法:递归法 阅读全文
posted @ 2020-03-22 19:54 RioTian 阅读(136) 评论(0) 推荐(0) 编辑
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 解法: 老实用快慢指针,快指针先走n步,然后快慢一起走,直到快指针走到最后,要注意的是可能是要删除第一个节点,这个时候可以直接返回 阅读全文
posted @ 2020-03-21 08:50 RioTian 阅读(122) 评论(0) 推荐(0) 编辑
摘要:编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表 : " " 在节点 c1 开始相交。 示例 1: " " 示例 2: " " 示例 3: " " 注意: 如果两个链表没有交点,返回 . 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O( n 阅读全文
posted @ 2020-03-20 20:34 RioTian 阅读(109) 评论(0) 推荐(0) 编辑
摘要:特别感谢LeetCode大佬 "陈牧远" 的科普知识 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n ),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 示例 2: 说明: 1. 不能 更改原数组(假设数组是只读 阅读全文
posted @ 2020-03-20 20:23 RioTian 阅读(205) 评论(0) 推荐(0) 编辑
摘要:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 。 为了表示给定链表中的环,我们使用整数 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 是 ,则在该链表中没有环。 说明: 不允许修改给定的链表。 示例 1: 示例 2: 示例 3: 进阶: 你是否可以不用额外空间解决 阅读全文
posted @ 2020-03-20 20:12 RioTian 阅读(180) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示