随笔分类 -  LeetCode

摘要:Partition算法及其应用 本文记录partition算法的两种实现方案,及其经典应用场景 Partition算法 partition算法的作用是选定一个元素pivot,然后将元素划分为两个部分,小于pivot的放在左边,大于pivot的放在右边。 实现上,可以分为单向扫描和双向扫描两种方案。 阅读全文
posted @ 2021-02-05 23:01 与MPI做斗争 阅读(373) 评论(0) 推荐(0)
摘要:LeetCode 405. Convert a Number to Hexadecimal 简单题,只为记录一下整数转十六进制的几种写法。 题目描述 Given an integer, write an algorithm to convert it to hexadecimal. For nega 阅读全文
posted @ 2021-02-02 11:57 与MPI做斗争 阅读(58) 评论(0) 推荐(0)
摘要:题目描述 LeetCode 三道 Path Sum 的题目,给定一棵二叉树和一个路径和targetSum,分别求问: LeetCode 112. Path Sum 满足条件的从root到leaf的路径是否存在; LeetCode 113. Path Sum II 满足条件的从root到leaf的路径 阅读全文
posted @ 2021-01-31 13:31 与MPI做斗争 阅读(61) 评论(0) 推荐(0)
摘要:组合数计算 计算组合数的题目及其变体还是比较常见的,这里记录一下几种经典解法。 我们以一个典型问题为例进行讨论: LeetCode 62. Unique Paths,问的是 mxn 的矩阵从左上走到右下有几种走法,每次只能向下走或者向右走。 动态规划 第一种解法是DP,采用递推公式 \(C(m, n 阅读全文
posted @ 2021-01-30 00:49 与MPI做斗争 阅读(352) 评论(0) 推荐(0)
摘要:LeetCode 315. 计算右侧小于当前元素的个数 You are given an integer array nums and you have to return a new counts array. The counts array has the property where cou 阅读全文
posted @ 2021-01-23 20:18 与MPI做斗争 阅读(106) 评论(0) 推荐(0)
摘要:LeetCode 201. Bitwise AND of Numbers Range 题目描述 Given a range [m, n] where 0 ⇐ m ⇐ n ⇐ 2147483647, return the bitwise AND of all numbers in this range 阅读全文
posted @ 2021-01-23 16:01 与MPI做斗争 阅读(87) 评论(0) 推荐(0)
摘要:LeetCode 162. Find Peak Element 题目描述 A peak element is an element that is strictly greater than its neighbors. Given an integer array nums, find a pea 阅读全文
posted @ 2021-01-22 20:40 与MPI做斗争 阅读(90) 评论(0) 推荐(0)
摘要:旋转数组查找元素 一共四道旋转数组查找元素的题目: 无重复数组查找指定元素, 有重复数组查找指定元素, 无重复数组查找最小元素, 有重复数组查找最小元素。 LeetCode 33. Search in Rotated Sorted Array 题目描述 You are given an intege 阅读全文
posted @ 2021-01-21 22:25 与MPI做斗争 阅读(411) 评论(0) 推荐(0)
摘要:LintCode 386. 最多有k个不同字符的最长子字符串 题目描述 给定字符串S,找到最多有k个不同字符的最长子串T。 样例 样例 1: 输入: S = "eceba" 并且 k = 3 输出: 4 解释: T = "eceb" 样例 2: 输入: S = "WORLD" 并且 k = 4 输出 阅读全文
posted @ 2021-01-16 19:31 与MPI做斗争 阅读(87) 评论(0) 推荐(0)
摘要:LintCode 550. 最常使用的K个单词II 难度困难题 题目描述 在实时数据流中找到最常使用的k个单词. 实现TopK类中的三个方法: TopK(k), 构造方法 add(word), 增加一个新单词 topk(), 得到当前最常使用的k个单词. 样例 样例 1: 输入: TopK(2) a 阅读全文
posted @ 2021-01-16 18:20 与MPI做斗争 阅读(110) 评论(0) 推荐(0)
摘要:LintCode 1029. 寻找最便宜的航行旅途(最多经过k个中转站) 题目描述 有n个城市被一些航班所连接。每个航班 (u,v,w) 从城市u出发,到达城市v,价格为w。 给定城市数目 n,所有的航班flights。你的任务是找到从起点src到终点站dst的最便宜线路的价格,而旅途中最多只能中转 阅读全文
posted @ 2021-01-16 13:29 与MPI做斗争 阅读(181) 评论(0) 推荐(0)
摘要:LintCode 570. 寻找丢失的数 II 问题描述 给一个由 1 - n 的整数随机组成的一个字符串序列,其中丢失了一个整数,请找到它。 样例 样例1 输入: n = 20 和 str = 19201234567891011121314151618 输出: 17 解释: 19'20'1'2'3 阅读全文
posted @ 2021-01-12 15:25 与MPI做斗争 阅读(98) 评论(0) 推荐(0)
摘要:LintCode 535. 打劫房屋 III 题目描述 在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树。与前两次偷窃相似的是每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的 阅读全文
posted @ 2021-01-12 13:23 与MPI做斗争 阅读(80) 评论(0) 推荐(0)
摘要:LintCode 614. 二叉树的最长连续子序列 II 问题描述 给定一棵二叉树,找到最长连续序列(单调且相邻节点值相差为1)路径的长度(节点数)。 路径起点跟终点可以为二叉树的任意节点。 样例 例1: 输入: {1,2,0,3} 输出: 4 解释: 1 / \ 2 0 / 3 0-1-2-3 例 阅读全文
posted @ 2021-01-12 11:31 与MPI做斗争 阅读(150) 评论(0) 推荐(0)
摘要:90. k数和 II 问题描述 给定n个不同的正整数,整数k(1<= k ⇐ n)以及一个目标数字。 在这n个数里面找出K个数,使得这K个数的和等于目标数字,你需要找出所有满足要求的方案。 样例 样例 1: 输入: [1,2,3,4], k = 2, target = 5 输出: [[1,4],[2 阅读全文
posted @ 2021-01-11 21:55 与MPI做斗争 阅读(99) 评论(0) 推荐(0)
摘要:LintCode 1674. 倒可乐 CAT 专属题目 中等难度题 替代链接 HDU 1495. 题目描述 给定一个容积为 s 的装满可乐的瓶子和两个容积分别为 n 和 m 的空杯子, 其中 n + m = s. 问能否通过在三个容器之间来回倒可乐来平分这 s 体积的可乐? 如果可以, 返回最少倾倒 阅读全文
posted @ 2021-01-11 20:20 与MPI做斗争 阅读(183) 评论(0) 推荐(0)
摘要:LintCode 797. 到达一个数字 也是 LeetCode 754. Reach a Number 更新 其实第一份错误代码的内存问题不是占用内存过多,而是 heap-use-after-free。问题出在 auto&& p = q.front(); q.pop(); 使用的引用类型,但是对象 阅读全文
posted @ 2021-01-11 15:59 与MPI做斗争 阅读(87) 评论(0) 推荐(0)
摘要:LintCode 1691. 买卖股票的最佳时机V 题目描述 给出一个股票n天的价格,每天最多只能进行一次交易,可以选择买入一支股票或卖出一支股票或放弃交易,输出能够达到的最大利润值 样例 样例 1: 给出 a = [1,2,10,9], 返回 16 输入: [1,2,10,9] 输出: 16 解释 阅读全文
posted @ 2021-01-11 12:52 与MPI做斗争 阅读(130) 评论(0) 推荐(0)
摘要:LintCode 69. 二叉树的层次遍历 问题描述 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 样例 1: 输入:{1,2,3} 输出:[[1],[2,3]] 解释: 1 / \ 2 3 它将被序列化为{1,2,3} 样例 2: 输入:{1,#,2,3} 输出:[[1],[2 阅读全文
posted @ 2021-01-11 10:54 与MPI做斗争 阅读(93) 评论(0) 推荐(0)
摘要:229. 栈排序 题目描述 请设计一种方法将一个栈进行升序排列 (最大的数在最上面)。 你可以使用另外一个栈来辅助操作,但不可将这些数复制到另外一个数据结构中 (如,数组)。 样例 给一个栈:[4,2,1,3], 排序之后:[1,2,3,4], 最右边是栈顶。 注意事项 时间复杂度为O(n^2)的算 阅读全文
posted @ 2021-01-10 23:47 与MPI做斗争 阅读(99) 评论(0) 推荐(0)