
数据结构
Sr's man
这个作者很懒,什么都没留下…
展开
-
Leetcode.92.翻转链表
原题链接:https://leetcode-cn.com/problems/reverse-linked-list-ii/翻转列表:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。因为要对链表的内容进行修改,所以在头结点之前添加一个dummy节点,可以简化代码。设置pre节点为当前的节点,初始化pre = dummy,从头节点到迭代m次...原创 2019-04-22 17:44:53 · 204 阅读 · 0 评论 -
LeetCode.208.前缀树
原题链接:https://leetcode-cn.com/problems/implement-trie-prefix-tree/submissions/。构建前缀树/字典树。下面我们学习一下字典树。令S为一个来自字母表∑\sum∑的s个字符的集合。S的标准字典树是一个具有以下特性的有序数T.除了根之外的T的每个节点,都用∑\sum∑中的字符做标签。T的内部节点的孩子节点有不同的标签T...原创 2019-03-02 23:04:27 · 214 阅读 · 1 评论 -
Leetcode.133.克隆图
克隆一张无向图,图中的每个节点包含一个 label (标签)和一个 neighbors (邻接点)列表 。OJ的无向图序列化:节点被唯一标记。我们用 # 作为每个节点的分隔符,用 , 作为节点标签和邻接点的分隔符。例如,序列化无向图 {0,1,2#1,2#2,2}。该图总共有三个节点, 被两个分隔符 # 分为三部分。第一个节点的标签为 0,存在从节点 0 到节点 1 和节点 2 的两...原创 2019-02-08 23:03:41 · 210 阅读 · 0 评论 -
LeetCode.2. 两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ->...原创 2019-01-21 20:01:25 · 105 阅读 · 0 评论 -
leetcode.2.两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ->...原创 2019-01-02 23:47:52 · 74 阅读 · 0 评论 -
Leetcode.20.有效的括号
20.有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例...原创 2018-12-25 18:11:39 · 112 阅读 · 0 评论 -
503.下一个更大的元素II
给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数; 第二个 ...原创 2019-01-03 23:35:26 · 93 阅读 · 0 评论 -
496.下一个更大的元素
给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2]....原创 2019-01-03 23:10:06 · 137 阅读 · 0 评论 -
LeetCode.451.根据字符出现频率排序
map按照key排序:sorted(dict.items(),key=lambda x:x[0],reverse=False)map按照value排序:sorted(dict.items(),key=lambda x:x[1],reverse=False)简单应用LeetCode.451.根据字符出现频率排序示例 1:输入:"tree"输出:"eert"解释:'e'出...原创 2019-01-03 22:15:51 · 198 阅读 · 0 评论 -
leetcoe.1.两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]暴力法 ...原创 2018-12-28 21:07:23 · 107 阅读 · 0 评论 -
leetcode.450.删除二叉树中的节点
450.删除二叉树中的节点给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。说明: 要求算法时间复杂度为 O(h),h 为树的高度。示例:root = [5,3,6,2,4,null,7]...原创 2018-12-22 14:55:08 · 521 阅读 · 0 评论 -
Leetcode.关于树的遍历的一些题目
二叉树的遍历中序,前序,后序,都是利用栈的思想二叉树的中序遍历给定一个二叉树,返回它的中序 遍历。输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]树根 - 左子树 - 右子树递归实现class Solution(object): def inorderTraversal(self, root): ...原创 2018-12-22 14:08:21 · 602 阅读 · 0 评论 -
leetcode.每日温度
根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数。如果之后都不会升高,请输入 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的都是 [30,...原创 2018-12-28 12:06:58 · 307 阅读 · 0 评论 -
LeetCode.206.反转链表
206.反转链表反转一个单链表。输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL非递归解法:1.class Solution(object): def reverseList(self, head): &原创 2018-12-27 20:55:38 · 121 阅读 · 0 评论 -
二叉树的遍历,查找,插入
遍历二叉树二叉树的特性一律从左向右遍历中序遍历:左子树-树根-右子树前序遍历:树根-左子树-右子树后序遍历:左子树-右子树-树根1,中序遍历中序遍历子程序def inorder(ptr): if ptr != None: inorder(ptr.left) print('[%2d]' % ptr.data,end=' ') ...原创 2018-12-14 14:02:34 · 217 阅读 · 0 评论