数据结构与算法
lilinfei001
这个作者很懒,什么都没留下…
展开
-
LEETCODE146 LRU缓存机制
一、题目描述运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。来源:力..原创 2020-05-31 21:13:49 · 170 阅读 · 0 评论 -
LeetCode901股票价格跨度
一、题目描述编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票跨度将是 [1, 1, 1, 2, 1, 4, 6]。来源:力扣(LeetCode)链接:股票价格跨度示例:输入:["StockSpanner","next","next","nex原创 2020-05-19 22:15:21 · 244 阅读 · 0 评论 -
LeetCode103二叉树的锯齿形层次遍历
一、题目描述给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]来源:力扣(Leet...原创 2020-04-23 09:32:53 · 90 阅读 · 0 评论 -
二叉树重建
一、题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7题目来源:二叉树重建二、...原创 2020-04-07 21:43:33 · 109 阅读 · 0 评论 -
寻找数组中的主要元素
一、题目描述如果数组中多一半的数都是同一个,则称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。示例 1:输入:[1,2,5,9,5,9,5,5,5]输出:5示例 2:输入:[3,2]输出:-1示例 3:输入:[2,2,1,1,1,2,2]输出:2题目链接寻找众数二、解题思路可以采用投票法,初始票数为0,遇到是众数的元素,则+...原创 2020-04-01 09:28:54 · 687 阅读 · 1 评论 -
合并两个有序的链表
一、题目描述输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000题目来源LeetCode合并两个有序链表二、解题思路由于两个链表原先就是有序的,遍历链表...原创 2020-04-01 09:15:11 · 97 阅读 · 0 评论 -
LeetCode地图分析
一、题目描述你现在手里有一份大小为N x N 的「地图」(网格)grid,上面的每个「区域」(单元格)都用0和1标记好了。其中0代表海洋,1代表陆地,请你找出一个海洋区域,这个海洋区域到离它最近的陆地区域的距离是最大的。我们这里说的距离是「曼哈顿距离」(Manhattan Distance):(x0, y0) 和(x1, y1)这两个区域之间的距离是|x0 - x...原创 2020-03-31 09:09:19 · 239 阅读 · 0 评论 -
二叉搜索树与双向链表
一、题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。题目详情见链接二叉搜索树与双向链表二、解题思路本题可以采用分治的思想来解决,即先把左子树转为双向链表,然后把根结点转为双向链表,最后把右子树转为双向链表,递归进行。由二叉搜索树的性质可知,二叉搜索树的中序遍历结果是一个有序的数组,因此可以借助二叉搜索...原创 2020-03-29 19:08:37 · 108 阅读 · 0 评论 -
数组中K个最大的元素
一、题目描述在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。输入: [3,2,1,5,6,4] 和 k = 2输出: 5输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4题目描述来源官方:https://leetcode-cn.com/problems/kth-largest-...原创 2020-03-29 18:47:04 · 199 阅读 · 0 评论 -
LeetCode之最长斐波那契子序列的长度
一、题目描述如果序列X_1, X_2, ..., X_n满足下列条件,就说它是斐波那契式的:n >= 3对于所有i + 2 <= n,都有X_i + X_{i+1} = X_{i+2}给定一个严格递增的正整数数组形成序列,找到 A 中最长的斐波那契式的子序列的长度。如果一个不存在,返回0 。(回想一下,子序列是从原序列 A中派生出来的,它从 A中删掉...原创 2020-03-29 18:37:11 · 82 阅读 · 0 评论