自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 Leetcode每日一题(20200921,二叉树)

今日题目T538 把二叉搜索树转换为累加树(简单,二叉树遍历)题目描述给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 原始二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18 / \ 20

2020-09-21 19:51:14 165

原创 20200920 Leetcode第207场周赛

20200920 第207场周赛第一题题目描述给你一个字符串 text ,该字符串由若干被空格包围的单词组成。每个单词由一个或者多个小写英文字母组成,并且两个单词之间至少存在一个空格。题目测试用例保证 text 至少包含一个单词 。请你重新排列空格,使每对相邻单词之间的空格数目都 相等 ,并尽可能 最大化 该数目。如果不能重新平均分配所有空格,请 将多余的空格放置在字符串末尾 ,这也意味着返回的字符串应当与原 text 字符串的长度相等。返回 重新排列空格后的字符串 。示例 1:输入:text

2020-09-21 19:28:50 153

原创 Leecode每日一题(20200920,回溯,迭代)

今日题目T78 子集(中等,回溯,迭代)题目描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]标签回溯,迭代解析略python解法class Solution: def subsets(self, nums): ans = [[]]

2020-09-21 19:27:31 145

原创 20200919 Leetcode第35场双周赛

20200919 第35场双周赛第一题题目描述给你一个正整数数组arr,请你计算所有可能的奇数长度子数组的和。子数组定义为原数组中的一个连续子序列。请你返回arr中所有奇数长度子数组的和。示例1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[4,2,5] = 11[2,5,3] = 10[1,4,2,5,3] = 15我们将所有值求和得

2020-09-21 19:25:09 168

原创 Leetcode每日一题(20200919)

今日题目T404 左叶子之和(简单,搜索)题目描述计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24标签深度优先搜索,广度优先搜索解析方法一:深度优先搜索众所周知,二叉树总是和搜索相关。这道题要求我们求出所有的左叶子节点之和,因此我们可以通过深度优先搜索,遍历二叉树的每个节点,判断其是否为左叶节点(我一开始的解法),或判断其左节点是否为叶节点(官方解法)

2020-09-19 11:14:54 103

原创 Leetcode每日一题(20200911)

今日题目T216 组合总和Ⅲ(中等,回溯)题目描述找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]标签回溯解析略Python解法class Solution: def combi

2020-09-12 12:26:11 71

原创 Leetcode每日一题(20200912)

今日题目T637 二叉树的层平均值(简单,搜索)题目描述给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。示例 1:输入: 3 / \ 9 20 / \ 15 7输出:[3, 14.5, 11]解释:第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。提示:节点值的范围在32位有符号整数范围内。标签深度优先搜索,广度优先搜索解析方法一:广度优先搜索“每层节点的平均值”

2020-09-12 12:24:46 104

原创 Leetcode每日一题(20200908)

今日题目T77 组合(中等,递归)题目描述给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]标签递归解析看到这道题的第一眼就想用递归。由于题目仅要求组合,而不要求排列,因此我们可以选择一种最舒服的顺序求解数字的组合,这里选择从小到大排列。对于每一个位置上的数字,我们遍历它的每一种可能,然后递归求解剩余可

2020-09-08 21:28:48 94

原创 Leetcode每日一题(20200906)

今日题目T107 二叉树的层次遍历Ⅱ(简单,二叉树)题目描述给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]标签二叉树解析本题与T102: 二叉树的层次遍历相似,输出与102题刚好相反。算法方面

2020-09-06 15:14:58 117

原创 Leetcode每日一题(20200904,简单,搜索)

今日题目T257 二叉树的所有路径(简单,搜索)题目描述给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: [“1->2->5”, “1->3”]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3标签深度优先搜索,广度优先搜索解析方法一:深度优先搜索这道题很显然可以使用深度优先搜索的方法解决。对于每一个节点,如果其不为空

2020-09-04 09:28:12 186

原创 Leetcode每日一题(20200901)

今日题目T486 预测赢家(中等,动态规划)题目描述给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。示例 1:输入:[1, 5, 2]输出:False解释:一开始,玩家1可以从1和2中进行选择。

2020-09-01 15:46:13 316

原创 Leetcode每日一题(20200831)

今日题目T841 钥匙和房间(中等,搜索)题目描述有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,…,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之

2020-08-31 16:21:16 196

原创 Leetcode每日一题(20200826)

今日题目T17 电话号码的字母组合(中等,搜索)题目描述给定一个仅包含数字 2-9 的字符串,按照与电话按键相同的映射关系,返回所有它能表示的字母组合。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].标签搜索解析由于一个数字对应多个字母,同一串数字对应的字母串,可能会有很多个。这里可以利用搜索的思想解决这道题。方法一:广度优先搜索对于每个数字,首先列出其对应的所有字母,与之前存储的结果逐个拼接,

2020-08-26 18:54:19 138

原创 Leetcode每日一题(20200823,中等,二进制)

今日题目T201 数字范围按位与(中等,二进制)题目描述给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。示例 1:输入: [5,7]输出: 4示例 2:输入: [0,1]输出: 0标签二进制解析首先,二进制数在+1时,一定是从右边开始变化:如果为1则改为0,直至遇到第一个0并将其改为1,才结束。对于任意的正整数m,由于数值的改变是从左到右的,m&(m+1)的结果一定是

2020-08-23 14:56:51 92

原创 Leetcode每日一题(20200818)

今日题目T109 有序链表转二叉搜索树(中等,二叉树,分治)题目描述给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5]它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5标签二

2020-08-18 23:31:21 133

原创 Leetcode每日一题(20200817)

今日题目T110 平衡二叉树(简单,二叉树,递归)题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2

2020-08-17 21:07:28 105

原创 Leetcode每日一题(20200814)

今日题目T20 有效的括号(简单,栈)题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true标签栈解析直接利用栈进行匹配即可。python解法class Solution: def isValid(self, s

2020-08-14 12:29:19 130

原创 Leetcode每日一题(20200807)

今日题目T100 相同的树(简单,递归,搜索)题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3[1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 / \ 2

2020-08-07 19:41:18 126 1

原创 Leetcode每日一题(20200805)

今日题目T337 打家劫舍Ⅲ(中等,深度优先搜索)题目描述在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,null,1] 3 / \2

2020-08-05 18:44:33 114

原创 Leetcode每日一题(20200804)

今日题目T207 课程表(中等,搜索)题目描述你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习。示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [

2020-08-04 18:41:25 791

原创 Leetcode每日一题(20200803)

今日题目T415 字符串相加(简单,字符串)题目描述给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。标签字符串解析非常经典的题(甚至让我想起来原来写的大数加法,可惜学校的编程题可没有这么友好),如果不使用任何把字符或字符串转为整数的函数,

2020-08-03 16:29:44 114

原创 Leetcode每日一题(20200802)

今日题目T114 二叉树展开为链表(中等,二叉树)题目描述给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6标签二叉树解析本题有多种解法,此处选取两种。暴力遍历使用前序遍历,遍历并记录树的各个结点,然后按顺序逐个添加到root的右

2020-08-02 22:21:46 79

原创 Leetcode每日一题(20200731)

今日题目T1685 面试题 08.03. 魔术索引(简单,遍历)题目描述魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。示例1: 输入:nums = [0, 2, 3, 4, 5] 输出:0 说明: 0下标的元素为0示例2: 输入:nums = [1, 1, 1] 输出:1标签遍历解析(官方题解

2020-07-31 23:01:11 168

原创 Leetcode每日一题(20200730)

今日题目T343 整数拆分(中等,数学题)题目描述给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。标签数学解析n=2和n=3时,只有一种拆分方式,分别得到1和2。n>=4时,证明最

2020-07-30 19:04:56 206

原创 Leetcode每日一题(20200728)

今日题目T104 二叉树的最大深度(简单,递归,BFS)题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3标签递归,BFS解析递归法到达空指针时返回0,其他时候返回左右子树的最大高度+1。BFS思路和普通的BFS差不多,注意使用count标记每层的节点数,进而计算最

2020-07-28 14:02:46 91

原创 Leetcode每日一题(20200727)

今日题目T392 判断子序列(简单,双指针,正则匹配,动态规划,递归)题目描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 1:s = “abc”, t = “ahb

2020-07-27 14:15:46 103

原创 Leetcode每日一题(20200726)

今日题目(困难,动态规划,记忆化搜索)T329 矩阵中的最长递增路径题目描述给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums = [ [9,9,4], [6,6,8], [2,1,1]] 输出: 4 解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums = [ [3,4,5], [3,2,6],

2020-07-26 16:41:34 97

原创 Leetcode每日一题(20020725)

今日题目T410 分割数组的最大值(困难,动态规划,二分查找)题目描述给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ m ≤ min(50, n)示例:输入:nums = [7,2,5,10,8]m = 2输出:18解释:一共有四种方法将nums分割为2个子数组,其中最好的方式是将其分为[7,2,5] 和 [10,8],因为此时

2020-07-25 18:26:40 192

原创 Leetcode每日一题(20200724)

今日题目T1025 除数博弈题目描述爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:选出任一 x,满足 0 < x < N 且 N % x == 0 。用 N - x 替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。示例 1:输入:2输出:true解释:爱丽丝选择 1,鲍勃无法进

2020-07-24 09:45:06 752

原创 Leetcode每日一题(20200723)

今日题目T64 最小路径和题目描述给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。标签动态规划解析非常典型的动态规划方程,只要能写出dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + grid[i][j],后面的应该都不难写。注意边界

2020-07-23 12:54:25 128

原创 Leetcode每日一题(20200721)

T95 不同的二叉搜索树Ⅱ(中等,递归,二叉树)题目描述给定一个整数 n,生成所有由 1 … n 为节点所组成的 二叉搜索树 。示例:输入:3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树:提示:0 <= n <= 8标签递归,二叉树解析本题是前几天另一道每日一题(不同的二叉搜索树)的变形。不同的二叉搜

2020-07-21 13:09:01 100

原创 Leetcode每日一题(20200720)

Leetcode每日一题(20200720)T167 两数之和 II - 输入有序数组(简单,二分查找+双指针)题目描述给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15]

2020-07-20 18:13:17 105

原创 Python实战笔记之爬虫+简单数据分析

起因之前,我参考了这篇文章,完成了第一次爬虫练习(爬取周杰伦新歌《Mojito》MV弹幕,看看粉丝们都说的些啥?)。在完成第一次爬虫练习后,我开始思考,爬虫得到的数据,要如何进行数据分析呢?为此,我选择了另外一期视频,并对视频的弹幕进行数据分析。爬虫部分爬虫部分,我根据公众号文章中给出的代码,结合自己的使用情况,成功获取了B站up主“花花与三猫CATLIVE”最新一期视频(BV1RK411n7EV)的弹幕列表,并将弹幕保存为txt文件。这个过程中,我还学习了正则表达式的使用。数据分析部分数据分析

2020-07-12 12:31:16 715

原创 3. 平衡二叉树(10分)

平衡二叉树(10分)成绩10开启时间2019年12月1日 星期日 08:00折扣0.8折扣时间2019年12月25日 星期三 23:55允许迟交否关闭时间2020年01月1日 星期三 23:55程序输入一个字符串(只包含小写字母),请按照字符的输入顺序建立平衡二叉排序树,并分别输出二叉树的先序序列、中序序列和后序序列,最后输出该二叉树向左旋转 ...

2019-12-20 12:40:41 673 1

原创 2. 排序二叉树(10分)

排序二叉树(10分)成绩10开启时间2019年12月1日 星期日 18:00折扣0.8折扣时间2019年12月25日 星期三 23:55允许迟交否关闭时间2020年01月1日 星期三 23:55建立并中序遍历一个排序二叉树排序二叉树是指左子树的所有节点的值均小于它根节点的值,右子树的所有节点的值均大于它根节点的值,如下图是一棵排序二叉树输入...

2019-12-20 12:38:35 446

原创 1. 折半查找 (10分)- 太简单

2.计算工程完成的关键路径(5分)成绩5开启时间2019年11月22日 星期五 18:00折扣0.8折扣时间2019年12月16日 星期一 23:55允许迟交否关闭时间2019年12月22日 星期日 23:55说明: AOE 网络是有向无环加权图,其中顶点表示事件,弧表示活动,权表示活动持续的时间,通常可以用来估算工程完成的时间,即图中从开始点到结...

2019-12-20 12:33:58 776

原创 1. 计算WPL(10分)

Huffman编码是通信系统中常用的一种不等长编码,它的特点是:能够使编码之后的电文长度最短。输入:第一行为要编码的符号数量n第二行~第n+1行为每个符号出现的频率输出:对应哈夫曼树的带权路径长度WPL#include <stdio.h>#include <stdlib.h>#define INF 0x3f3f3fint last, wpl, len;i...

2019-12-20 12:28:30 604

原创 图解平衡二叉树的四种旋转

这周写到平衡二叉树的题,在写旋转代码的时候写的有点晕,于是动笔画了个草图,总算是把四种旋转搞明白了。为了强化记忆,我用ppt做了四种旋转的图示,也希望看了这篇博客的各位能有所收获。四张图分别是LL旋转,RR旋转,LR旋转和RL旋转。(顺便吐槽一句,CSDN的markdown真难用,经常找不到光标,写的时候图片的的注解也没显示出来,不知道发出来会怎样)...

2019-12-18 14:12:29 2291

原创 2.树的建立与基本操作

2.树的建立与基本操作程序的输入是一个表示树结构的广义表。假设树的根为 root ,其子树森林 F = ( T1 , T2 , … , Tn),设与该树对应的广义表为 L ,则 L =(原子,子表 1 ,子表 2 , … ,子表 n ),其中原子对应 root,子表 i ( 1<i<=n )对应 Ti 。例如:广义表 (a,(b,(c),(d)),(f,(g),(h ),(i))) ...

2019-12-06 00:11:01 814

原创 广义表的建立与基本操作(10分)

1. 广义表的建立与基本操作(10分)成绩 10 开启时间 2019年11月8日 星期五 18:00折扣 0.8 折扣时间 2019年11月28日 星期四 23:55允许迟交 是 关闭时间 2019年12月8日 星期日 23:55采用"头尾法存储广义表,实现以下广义表的操作:1.Status CreateGList( GList &L, char *S ) // 根据字符...

2019-11-22 22:36:52 1192 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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