![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
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 · 151 阅读 · 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 · 180 阅读 · 1 评论 -
Leetcode.133.克隆图
克隆一张无向图,图中的每个节点包含一个 label (标签)和一个 neighbors (邻接点)列表 。 OJ的无向图序列化: 节点被唯一标记。 我们用 # 作为每个节点的分隔符,用 , 作为节点标签和邻接点的分隔符。 例如,序列化无向图 {0,1,2#1,2#2,2}。 该图总共有三个节点, 被两个分隔符 # 分为三部分。 第一个节点的标签为 0,存在从节点 0 到节点 1 和节点 2 的两...原创 2019-02-08 23:03:41 · 153 阅读 · 0 评论 -
LeetCode.2. 两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 ->...原创 2019-01-21 20:01:25 · 58 阅读 · 0 评论 -
leetcode.2.两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 ->...原创 2019-01-02 23:47:52 · 55 阅读 · 0 评论 -
Leetcode.20.有效的括号
20.有效的括号 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例...原创 2018-12-25 18:11:39 · 75 阅读 · 0 评论 -
503.下一个更大的元素II
给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。 示例 1: 输入: [1,2,1] 输出: [2,-1,2] 解释: 第一个 1 的下一个更大的数是 2; 数字 2 找不到下一个更大的数; 第二个 ...原创 2019-01-03 23:35:26 · 71 阅读 · 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 · 109 阅读 · 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 · 175 阅读 · 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 · 84 阅读 · 0 评论 -
leetcode.450.删除二叉树中的节点
450.删除二叉树中的节点 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。 一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点; 如果找到了,删除它。 说明: 要求算法时间复杂度为 O(h),h 为树的高度。 示例: root = [5,3,6,2,4,null,7]...原创 2018-12-22 14:55:08 · 491 阅读 · 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 · 558 阅读 · 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 · 257 阅读 · 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 · 98 阅读 · 0 评论 -
二叉树的遍历,查找,插入
遍历二叉树 二叉树的特性一律从左向右遍历 中序遍历:左子树-树根-右子树 前序遍历:树根-左子树-右子树 后序遍历:左子树-右子树-树根 1,中序遍历 中序遍历子程序 def inorder(ptr): if ptr != None: inorder(ptr.left) print('[%2d]' % ptr.data,end=' ') ...原创 2018-12-14 14:02:34 · 171 阅读 · 0 评论