随笔分类 - 刷题笔记: LeetCode
摘要:给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 是 ,则在该链表中没有环。 示例 1: 示例 2: 示例 3: 进阶: 你能用 O(1) (即,常量)内存解决此问题吗? 代码: 中规中矩的快慢指针,12ms 9MB
阅读全文
摘要:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 问题分析 对于链表的问题,根据以往的经验一般都是要建一个dummy node,连上原链表的头结点,这样的话就算头结点变动了,我们还可以通过dummy next来获得新链表的头结点。这道题的要
阅读全文
摘要:给定一个链表和一个特定值 x ,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: Code: 巧设双指针
阅读全文
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? Code: 递归法 Code: 双指针法
阅读全文
摘要:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性: 和 。`val next prev 0 index `的。 在链表类中实现这些功能: :获取链表中第 index 个节点的值。如果索引无效,则返回 1。 :在链表的第一个元素之前添加一个值为 的节点。插入后,新节点将成为
阅读全文
摘要:给你一个 m n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元素中最大 示例 1: 示例 2: 示例 3: 提示: m == mat.length n == mat[i].len
阅读全文
摘要:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 示例 2: Code:sort、hash、BM投票、随机数、位运算
阅读全文
摘要:给定一个整数数组 ,只有我们可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。 形式上,如果我们可以找出索引` i+1 & A) { int s= accumulate(A.begin(),A.end(),0); if(s % 3!=0) return false; int
阅读全文
摘要:请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value 需要返回 1 示例 1: 输入: 输出: 示例 2: 输入: 输出: 限制:
阅读全文
摘要:题目描述 面试题57 II. 和为s的连续正数序列 难度简单37收藏分享切换为英文关注反馈 输入一个正整数 ,输出所有和为 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 示例 1: 示例 2: 限制: `1 findContinuousSeque
阅读全文
摘要:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意: 给定 n 是一个正整数。 示例 1: 示例 2: Code
阅读全文
摘要:给定两个字符串 和 ,编写一个函数来判断 是否是 的字母异位词。 示例 1: 示例 2: 说明: 你可以假设字符串只包含小写字母。 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? 方法一:直接sort函数 方法二: map计数 方法三: 数组法(hash)
阅读全文
摘要:给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。 初始化 A 和 B 的元素数量分别为 m 和 n。 示例: 输入: A = [1,2,3,0,0,0], m = 3 B = [2,5,6], n = 3 输出: [1,2,2,
阅读全文
摘要:题目描述: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 head = [4,5,1,9],它可以表示为: 示例 1: 示例 2: 说明: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个
阅读全文
摘要:题目描述: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0
阅读全文