Keshawn_lu's Blog

Keshawn_lu's Blog

Become a better myself.

Leetcode 130. 被围绕的区域
题目简介:给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。 示例: 1234X X X XX O O XX X O XX O X X 运行你的函数后,矩阵变为: 1234X X X XX X X XX X X XX O X X 解释: 被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都不会被填充为 'X'。 任何不在边界上,或不与边界上的 'O' 相连的 &...
Leetcode 696. 计数二进制子串
题目简介:给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。 重复出现的子串要计算它们出现的次数。 示例 1 : 1234567输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的子串,因为所有的0(和1)没有组合在一起。 示例 2 : 123输入: "10101"输出: 4解释: 有4个...
Leetcode 93. 复原IP地址
题目简介:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.'分隔。 示例: 12输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"] 思路:递归,函数形式为dfs(int pointnum, int lastpoint, string& s, string& temp)。 其中pointnum代表已经加点的数量,lastp...
Leetcode 99. 恢复二叉搜索树
题目简介:二叉搜索树中的两个节点被错误地交换。 请在不改变其结构的情况下,恢复这棵树。 示例 1: 123456789101112131415输入: [1,3,null,null,2] 1 / 3 \ 2 输出: [3,1,null,null,2] 3 / 1 \ 2 示例 2: 123456789101112131415输入: [3,1,4,null,null,2] 3 / \1 4 / 2 输出: [2,1,4,null,null,3] 2 / \1 4 / 3 思路:由于是二叉搜索树,所以其中序遍历必是一个递增序列。 所以我们对...
Leetcode 100. 相同的树
题目简介:给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 1234567输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true 示例 2: 1234567输入: 1 1 / \ 2 2 [1,2], ...
Leetcode 336. 回文对
题目简介:给定一组 互不相同 的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。 示例 1: 123输入:["abcd","dcba","lls","s","sssll"]输出:[[0,1],[1,0],[3,2],[2,4]] 解释:可拼接成的回文串为 ["dcbaabcd","abcddcba","slls","llssssll"...
Leetcode 337. 打家劫舍 III
题目简介:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。 计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。 示例 1: 12345678910输入: [3,2,3,null,3,null,1] 3 / \ 2 3 \ \ 3 1 输出: 7 解释: 小偷一晚能够盗取的最高金...
Leetcode 207. 课程表
题目简介:你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1] 给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习? 示例 1: 123输入: 2, [[1,0]] 输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。 示例 2: 123输入: 2, [[1,0],[0,1]]输出: false解释: 总共有 2 门课程。学习课程 1 之前,你需要先完成课程 0;并...
Leetcode 415. 字符串相加
题目简介:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。 思路:模拟竖式相加,首先通过前缀补0的方式使两个字符串拥有相同的长度。 然后从后往前,一位一位模拟相加,若有进位,则flag = 1。 最后相加结束后,若flag = 1,则最后存在进位,res = '1' + res即可。 代码如下:12345678910111213141516171819202122232425262728293031323...
Leetcode 114. 二叉树展开为链表
题目简介:给定一个二叉树,原地将它展开为一个单链表。 例如,给定二叉树 12345 1 / \ 2 5 / \ \3 4 6 将其展开为: 12345678910111 \ 2 \ 3 \ 4 \ 5 \ 6 思路:前序遍历,将先后遍历到的结点存储起来。 最后将每个结点连接在前一个结点的右子树上,前一个结点的左子树置为空。 tip: 不知道这个算不算原地… 代码如下:123456789101112131415161718192021222324252627282930...
avatar
鸣蜩十九
Always
友链
CSDN BiliBili