自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 437. 路径总和 III

给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。 root ...

2020-02-29 18:12:43 55 0

原创 31. 下一个排列

实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。 分析题,还没这种意识。学到了。 ...

2020-02-29 17:20:45 30 0

原创 22. 括号生成

给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出n=3,生成结果为: [ "((()))", "(()())", "(())()", "()(())&quo...

2020-02-29 14:41:42 33 0

原创 17. 电话号码的字母组合

给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 输入:"23" 输出:["ad", "ae", "af", "bd...

2020-02-29 14:17:21 38 0

原创 448. 找到所有数组中消失的数字

给定一个范围在1 ≤ a[i] ≤ n (n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。 找到所有在 [1, n] 范围之间没有出现在数组中的数字。 您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。 ...

2020-02-27 22:50:37 32 0

原创 543. 二叉树的直径

给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例 : 给定二叉树 一个节点的最大直径 = 它左树的高度 + 它右树的高度 # Definition for a binary tree node. # class...

2020-02-27 22:09:44 37 0

原创 581. 最短无序连续子数组

给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 你找到的子数组应是最短的,请输出它的长度。 示例 1: 输入: [2, 6, 4, 8, 10, 9, 15] 输出: 5 解释: 你只需要对 [6, 4, 8, 10, 9] 进行...

2020-02-27 21:30:52 35 0

原创 15. 三数之和 && 18. 四数之和&&16. 最接近的三数之和

给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 数组:一般就是排序,二分,hash,双指针 想hash去了,一直没搞出来,害。 方法:先排序,定...

2020-02-27 18:30:07 53 0

原创 559. N叉树的最大深度

给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 例如,给定一个3叉树: 1.层序遍历 2.递归 """ # Definition for a Node. class Node(object): ...

2020-02-26 17:44:38 49 0

原创 1038. 从二叉搜索树到更大和树

给出二叉搜索树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node的新值等于原树中大于或等于node.val的值之和。 提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键小于节点键的节点。 节点的右子树仅包含键大于节点键的节点。 左右子树也必须是二叉搜索树。 ...

2020-02-26 17:36:12 49 0

原创 501. 二叉搜索树中的众数

给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 例如: 给定 BST [1,null,2,2], ...

2020-02-26 16:38:54 39 0

原创 235. 二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树:root =[6...

2020-02-26 15:04:04 48 0

原创 面试题 17.12. BiNode

二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求值的顺序保持不变,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。 返回转换后的单向链表的头节点。 注意:本题相对原题稍作改动 示例: 输...

2020-02-26 14:11:43 358 0

原创 116. 填充每个节点的下一个右侧节点指针

给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下...

2020-02-25 13:59:07 52 0

原创 897. 递增顺序查找树

给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 示例 : 输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / ...

2020-02-24 19:15:08 34 0

原创 199. 二叉树的右视图

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例: 输入:[1,2,3,null,5,null,4] 输出:[1, 3, 4] 解释: 1 <--- / \ 2 3 <--- \ \ 5 4 ...

2020-02-24 18:44:04 27 0

原创 二叉树-前中后-非递归-python

def preOrder(root): if not root: return [] res = [] stack = [root] while stack: node = stack.pop() res.append(node.val) if node.right: ...

2020-02-24 18:41:15 64 0

原创 257. 二叉树的所有路径

给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明:叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 # Definition for a binary tree node. # class TreeNode(object): # d...

2020-02-24 17:12:02 28 0

原创 114. 二叉树展开为链表

给定一个二叉树,原地将它展开为链表。 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 # Definition for a binary tree ...

2020-02-24 16:13:41 31 0

原创 113. 路径总和 II

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明:叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和sum = 22, # Definition for a binary tree node. # class TreeNode(o...

2020-02-23 21:18:17 24 0

原创 111. 二叉树的最小深度

给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例: 给定二叉树[3,9,20,null,null,15,7], 1.递归 # Definition for a binary tree node. ...

2020-02-23 21:17:16 34 0

原创 109. 有序链表转换二叉搜索树 && 108. 将有序数组转换为二叉搜索树

给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null,...

2020-02-23 18:48:59 46 0

原创 99. 恢复二叉搜索树

二叉搜索树中的两个节点被错误地交换。 请在不改变其结构的情况下,恢复这棵树。 示例1: 输入: [1,3,null,null,2] 1 / 3 \ 2 输出: [3,1,null,null,2] 3 / 1 \ 2 1.简单但效率不高,利用中序得到所有值,做一个排序,然后再依...

2020-02-23 18:28:24 42 0

原创 二叉树的中序遍历-栈实现

# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # ...

2020-02-23 15:59:44 102 0

原创 101. 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树[1,2,2,3,4,4,3]是对称的。 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # ...

2020-02-23 15:18:25 24 0

原创 5170. 验证二叉树

二叉树上有 n个节点,按从0到 n - 1编号,其中节点i的两个子节点分别是leftChild[i]和rightChild[i]。 只有 所有 节点能够形成且 只 形成 一颗有效的二叉树时,返回true;否则返回 false。 如果节点i没有左子节点,那么leftChild[i]就等于-1。右...

2020-02-23 13:41:27 77 0

原创 5169. 日期之间隔几天

请你编写一个程序来计算两个日期之间隔了多少天。 日期以字符串形式给出,格式为YYYY-MM-DD,如示例所示。 示例 1: 输入:date1 = "2019-06-29", date2 = "2019-06-30" 输出:1 示例 2: 输入:d...

2020-02-23 13:20:12 58 0

原创 5171. 最接近的因数

给你一个整数num,请你找出同时满足下面全部要求的两个整数: 两数乘积等于 num + 1或num + 2 以绝对差进行度量,两数大小最接近 你可以按任意顺序返回这两个整数。 示例 1: 输入:num = 8 输出:[3,3] 解释:对于 num + 1 = 9,最接近的两个因数是 3 ...

2020-02-23 12:20:35 74 0

原创 5342. 最多可以参加的会议数目

给你一个数组events,其中events[i] = [startDayi, endDayi],表示会议i开始于startDayi,结束于endDayi。 你可以在满足startDayi<= d <= endDayi中的任意一天d参加会议i。注意,一天只能参加一个会议。 请你返回你...

2020-02-16 13:52:30 292 0

原创 5341. 最后 K 个数的乘积

请你实现一个「数字乘积类」ProductOfNumbers,要求支持下述两种方法: 1.add(int num) 将数字num添加到当前数字列表的最后面。 2. getProduct(int k) 返回当前数字列表中,最后k个数字的乘积。 你可以假设当前列表中始终 至少 包含 k 个数字。 ...

2020-02-16 13:37:44 79 0

原创 887. 鸡蛋掉落

你将获得K个鸡蛋,并可以使用一栋从1到N共有 N层楼的建筑。 每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。 你知道存在楼层F ,满足0 <= F <= N 任何从高于 F的楼层落下的鸡蛋都会碎,从F楼层或比它低的楼层落下的鸡蛋都不会破。 每次移动,你可以取一个鸡...

2020-02-14 14:46:30 77 0

原创 300. 最长上升子序列

给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。 1.动态规划 转移方程:dp[i] = max(dp[i],dp[j]+1) dp[j]是最靠...

2020-02-14 11:34:31 43 0

原创 239. 滑动窗口最大值

给定一个数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5...

2020-02-13 18:59:46 64 0

原创 聚类

# !/usr/bin/env python3 # coding=utf-8 """ K-means Author :Chai Zheng Blog :http://blog.csdn.net/chai_zheng/ Github :https://github.c...

2020-02-13 16:49:04 57 0

原创 滑动窗口类型题目

1、3. 无重复字符的最长子串 2、30. 串联所有单词的子串 3、76. 最小覆盖子串 4、159. 至多包含两个不同字符的最长子串 5、209. 长度最小的子数组 6、239. 滑动窗口最大值 7、340. 至多包含 K 个不同字符的最长子串 8、438. 找到字符串中所有字母异位词 9、56...

2020-02-13 15:48:04 213 0

原创 438. 找到字符串中所有字母异位词

给定一个字符串s和一个非空字符串p,找到s中所有是p的字母异位词的子串,返回这些子串的起始索引。 字符串只包含小写英文字母,并且字符串s和 p的长度都不超过 20100。 说明: 字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。 示例1: 输入: s: "cba...

2020-02-13 14:56:02 28 0

原创 5. 最长回文子串&&516. 最长回文子序列

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd&qu...

2020-02-12 14:12:00 29 0

原创 42. 接雨水

给定n个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。感谢 Marcos 贡献此图。 示例: 输入: [0,...

2020-02-12 12:54:13 92 0

原创 1348. 推文计数

请你实现一个能够支持以下两种方法的推文计数类TweetCounts: 1. recordTweet(string tweetName, int time) 记录推文发布情况:用户tweetName在time(以 秒为单位)时刻发布了一条推文。 2. getTweetCountsPerFrequ...

2020-02-12 10:38:43 75 0

原创 63. 不同路径 II

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 输入: [ [0,0,0], ...

2020-02-08 18:24:01 34 0

提示
确定要删除当前文章?
取消 删除