面试
文章平均质量分 73
earlene_wyl
这个作者很懒,什么都没留下…
展开
-
中缀转后缀表达式(leetcode 150 && 224 && 227 && 772)
目录0)总结记忆1)定义2)后缀表达式求值3)中缀转后缀4)代码 1) (后缀计算)leetcode150. 逆波兰表达式求值2)中缀转后缀3)leetcode224. 基本计算器&&227. 基本计算器 II &&772. 基本计算器 III0)总结记忆1.后缀计算:一个栈,遍历字符...原创 2019-09-25 02:45:55 · 2227 阅读 · 0 评论 -
leetcode 40. 组合总和 II medium
leetcode40. 组合总和 IImedium 题目描述:给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例1:输入: can...原创 2019-07-30 17:09:01 · 184 阅读 · 0 评论 -
leetcode 47. 全排列 II medium
leetcode47. 全排列 II medium 题目描述:给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]解题思路:经典的dfs全排列+一点小套路1. 为了避免重复,先sort一下,让重复的数字挨着2.剪枝:除了被访问过...原创 2019-07-30 13:58:41 · 174 阅读 · 0 评论 -
leetcode46. 全排列 medium
leetcode46. 全排列 medium 题目描述:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解题思路:解法1:套用经典的回溯模板解法2:利用swap搞定每一位...原创 2019-07-30 12:08:05 · 155 阅读 · 0 评论 -
leetcode 239. 滑动窗口最大值 hard(重要)
leetcode239. 滑动窗口最大值 hard(重要) 题目描述:给定一个数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,...原创 2019-08-16 21:33:32 · 319 阅读 · 0 评论 -
leetcode 240. 搜索二维矩阵 II medium
leetcode240. 搜索二维矩阵 IImedium 题目描述:编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。解题思路:注意跟上一题的区别(这一题不是二分)从右上角or左下角开始搜即可代码:class Soluti...原创 2019-08-21 22:38:08 · 177 阅读 · 0 评论 -
leetcode 74. 搜索二维矩阵 medium
leetcode74. 搜索二维矩阵medium 题目描述:编写一个高效的算法来判断m x n矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 3...原创 2019-08-21 22:37:58 · 151 阅读 · 0 评论 -
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 medium
leetcode34. 在排序数组中查找元素的第一个和最后一个位置 medium 题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。解题思路: //找开始和结束...原创 2019-08-21 22:37:50 · 186 阅读 · 0 评论 -
leetcode 35. 搜索插入位置 easy
leetcode35. 搜索插入位置 easy 题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。解题思路:因为假如没有这个数,需要找到插入的位置,所以返回第一个大于等于target的下标即可(即实现lower_bound)代码:class S...原创 2019-08-05 22:57:20 · 103 阅读 · 0 评论 -
leetcode 540. 有序数组中的单一元素 medium
leetcode 540. 有序数组中的单一元素 medium 题目描述:给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10注意: 您的方案应该在 O(log n)时间复杂度和 O...原创 2019-09-26 18:47:00 · 111 阅读 · 0 评论 -
leetcode 69. x 的平方根 easy
leetcode69. x 的平方根 easy 题目描述:实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。解题思路:因为结果只保留整数的部分,小数部分将被舍去,所以理所当然的想到求的是最后一个数 所以是模板2,前半段的结尾.(用模板1也行,但ch...原创 2019-08-05 22:33:25 · 130 阅读 · 0 评论 -
leetcode 146. LRU缓存机制 medium (重要)
leetcode146. LRU缓存机制 medium (重要) 题目描述:运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, valu...原创 2019-08-22 17:47:28 · 195 阅读 · 1 评论 -
leetcode 148. 排序链表 medium (重要)
leetcode148. 排序链表 medium (重要) 题目描述:在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4解题思路:方法1:递归版归并排序 时间O(nlogn) 空间O(logn)主要就是在so...原创 2019-08-09 01:48:04 · 191 阅读 · 0 评论 -
leetcode 25.k个一组翻转链表 hard
leetcode 25.k个一组翻转链表hard 题目描述:给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当k= 2 时,应当返回: 2->1-&...原创 2019-07-30 00:37:25 · 393 阅读 · 0 评论 -
leetcode23. 合并K个排序链表 hard
leetcode23. 合并K个排序链表 hard 题目描述:合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。解题思路:两种方法的复杂度都是 O(nklogk)方法1:分治不停的对半划分,比如k个链表先划分为合并两个k/2个链表的任务,再不停的往下划分,直到划分成只有一个或两个链表的任务,开始合并。举个例子来说比如合并6个链表,...原创 2019-07-29 23:18:54 · 229 阅读 · 0 评论 -
leetcode 86. 分隔链表 medium
leetcode86. 分隔链表 medium 题目描述:给定一个链表和一个特定值x,对链表进行分隔,使得所有小于x的节点都在大于或等于x的节点之前。你应当保留两个分区中每个节点的初始相对位置。解题思路:造两个头节点,less_head和more_head,最后别忘了more_ptr的处理(把它的next设为nullptr,这个很容易忘!!!...原创 2019-07-29 20:36:25 · 165 阅读 · 0 评论 -
leetcode92. 反转链表 II medium(位置m到n)
leetcode92. 反转链表 IImedium 题目描述:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL解题思路...原创 2019-07-29 17:32:09 · 235 阅读 · 0 评论 -
leetcode206. 反转链表 easy
leetcode206. 反转链表 easy 题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?解题思路:基础题代码:/** * Defi...原创 2019-07-29 15:50:04 · 124 阅读 · 0 评论 -
leetcode 4. 寻找两个有序数组的中位数(任意第k小的数) hard
leetcode4. 寻找两个有序数组的中位数 hard 题目描述:给定两个大小为 m 和 n 的有序数组nums1 和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是...原创 2019-10-06 23:04:14 · 592 阅读 · 0 评论