算法
文章平均质量分 87
记录刷题心得。
LittleSeedling
leetcode: https://leetcode.cn/u/miao-z0/
展开
-
【LCP2022春】52. 二叉搜索树染色【中等】带惰性标记的线段树
LCP 52. 二叉搜索树染色题目思路题意分析线段树什么是线段树?线段树的复杂度为什么需要惰性标记带惰性标记的线段树例子总结push_down代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度: 中等时间:1h44m【带惰性标记的线段树】学习题目欢迎各位勇者来到力扣城,本次试炼主题为「二叉搜索树染色」。每位勇士面前设有一个二叉搜索树的模型,模型的根节点为root,树上的各个节点值均不重复。初始时,所有节点均为蓝色。现在按顺序对这棵二叉树进行若干次操作, ops原创 2022-04-16 21:47:09 · 800 阅读 · 1 评论 -
【LeetCode每日一题2022/04/04】307. 区域和检索 - 数组可修改【中等】线段树
307. 区域和检索 - 数组可修改题目1线段树代码算法复杂度题目2代码——线段树算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度: 中等时间:-早就想学线段树了,一直没时间学,这次抽空学一下。看之后有无时间再学一下树状数组。题目1给你一个数组 nums ,请你完成两类查询。其中一类查询要求 更新 数组 nums 下标对应的值另一类查询要求返回数组 nums 中索引left和索引 right 之间( 包含 )的nums元素的 和 ,其中left <= r原创 2022-04-05 14:58:59 · 1386 阅读 · 0 评论 -
【LeetCode双周赛75T4】6036. 构造字符串的总得分和【困难】字符串哈希+二分查找
6036. 构造字符串的总得分和题目思路二分查找字符串哈希(Rabin-Karp字符串编码)获得字符串[l,r]区间的哈希编码代码二分查找 模板算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度: 困难(T4)时间:-字符串哈希没用过,第一次见。题目你需要从空字符串开始 构造 一个长度为n的字符串s,构造的过程为每次给当前字符串 前面 添加 一个 字符。构造过程中得到的所有字符串编号为 1 到 n ,其中长度为 i 的字符串编号为 si 。比方说,s = "aba原创 2022-04-05 00:38:41 · 418 阅读 · 0 评论 -
【LeetCode周赛284T4】6032. 得到要求路径的最小带权子图【困难】图最短路径:迪杰斯特拉dijkstra
397. 整数替换题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度: 困难(T4)时间:-题目给你一个整数 n ,它表示一个 带权有向 图的节点数,节点编号为 0 到 n - 1 。同时给你一个二维整数数组 edges ,其中 edges[i] = [fromi, toi, weighti] ,表示从 fromi 到 toi 有一条边权为 weighti 的 有向 边。最后,给你三个 互不相同 的整数 src1 ,src2 和 dest ,表示图中三原创 2022-03-13 14:28:27 · 2435 阅读 · 0 评论 -
[leetcode每日一题2021/11/19]397. 整数替换【中等】找规律
397. 整数替换题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度: 中等时间:1h题目给定一个正整数 n ,你可以做如下操作:如果 n 是偶数,则用 n / 2替换 n 。如果 n 是奇数,则可以用 n + 1或n - 1替换 n 。n 变为 1 所需的最小替换次数是多少?示例 1:输入:n = 8输出:3解释:8 -> 4 -> 2 -> 1示例 2:输入:n = 7输出:4解释:7 -> 8 ->原创 2021-11-19 11:49:34 · 395 阅读 · 0 评论 -
[leetcode每日一题2021/10/26]496. 下一个更大元素 I【简单】进阶:单调栈+哈希表
496. 下一个更大元素 I题目思路单调栈+哈希表代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单时间:10min题目给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: n原创 2021-10-26 17:01:53 · 92 阅读 · 0 评论 -
[leetcode每日一题2021/10/27]301. 删除无效的括号【困难】栈
496. 下一个更大元素 I题目思路理论分析具体实现代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度: 困难时间:1h 编程时间题目给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。返回所有可能的结果。答案可以按 任意顺序 返回。示例 1:输入:s = "()())()"输出:["(())()","()()()"]示例 2:输入:s = "(a)())()"输出:["(a())()","(a)()()"]原创 2021-10-27 19:57:38 · 169 阅读 · 0 评论 -
[leetcode每日一题2021/9/16]212. 单词搜索 II【困难】字典树+dfs
212. 单词搜索 II题目思路字典树代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难时间:4h题目给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例 1:输入:board = [["o","a","a","n"原创 2021-09-16 23:52:44 · 170 阅读 · 0 评论 -
[leetcode每日一题2021/5/8]1723. 完成所有工作的最短时间
1723. 完成所有工作的最短时间题目思路动态规划状态转移方程优化求和打表快速枚举每种选取情况jjj的子集ppp代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难(思路是对了,但是想不到快速枚举子集的方法,超时没过)时间:-TAG:动态规划题目给你一个整数数组 jobs ,其中 jobs[i] 是完成第 i 项工作要花费的时间。请你将这些工作分配给 k 位工人。所有工作都应该分配给工人,且每项工作只能分配给一位工人。工人的 工作时间 是完成分配给他们的所原创 2021-05-08 17:36:40 · 438 阅读 · 2 评论 -
[leetcode每日一题2021/4/29]403. 青蛙过河
403. 青蛙过河题目思路动态规划代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难时间:40minTAG:动态规划题目一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。给你石子的位置列表 stones(用单元格序号 升序 表示), 请判定青蛙能否成功过河(即能否在最后一步跳至最后一块石子上)。开始时, 青蛙默认已站在第一块石子上,并可以假定它第一步只能跳原创 2021-04-29 11:16:43 · 288 阅读 · 0 评论 -
[leetcode每日一题2021/4/23]368. 最大整除子集
368. 最大整除子集题目思路动态规划代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等时间:-tag:排序、动态规划题目给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对 (answer[i], answer[j]) 都应当满足:answer[i] % answer[j] == 0 ,或answer[j] % answer[i] == 0如果存在多个有效解子集,返回其中任何一个均可。原创 2021-04-23 18:06:40 · 188 阅读 · 0 评论 -
[leetcode每日一题2021/2/18]【详解】995. K 连续位的最小翻转次数
K 连续位的最小翻转次数题目思路&代码贪心翻转翻转优化优化的思路时间复杂度的考虑空间换时间的考虑具体地考虑空间优化题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难时间:2h-题目在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0。返回所需的 K 位翻转的最小次数,以便数组没有值为 0 的元素。如果不可能,返回 -1。示例 1:输入:A = [0,1,0原创 2021-02-18 14:37:29 · 256 阅读 · 0 评论 -
[leetcode每日一题2021/2/14]765. 情侣牵手
情侣牵手题目思路并查集贪心代码贪心算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难(今天虾仁猪心)时间:40min题目N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手。 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起。 一次交换可选择任意两人,让他们站起来交换座位。人和座位用 0 到 2N-1 的整数表示,情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后一对是 (2N-2, 2N-1)。这些情侣的初始座位原创 2021-02-14 09:56:27 · 418 阅读 · 0 评论 -
[leetcode每日一题2021/2/13]448. 找到所有数组中消失的数字
找到所有数组中消失的数字题目思路原地哈希代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单时间:-题目给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在 不使用额外空间且时间复杂度为O(n) 的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输原创 2021-02-13 14:49:05 · 143 阅读 · 1 评论 -
[leetcode每日一题2021/2/9]992. K 个不同整数的子数组
K 个不同整数的子数组题目思路双指针代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难(逐渐困难也能写出来了)时间:2h题目给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定独立的子数组为好子数组。(例如,[1,2,3,1,2] 中有 3 个不同的整数:1,2,以及 3。)返回 A 中好子数组的数目。示例 1:输入:A = [1,2,1,2,3], K = 2输出:7解释:恰好由 2 个不同整数原创 2021-02-09 18:10:06 · 156 阅读 · 1 评论 -
[leetcode每日一题2021/2/1]888. 公平的糖果棒交换
公平的糖果棒交换题目思路O(n²)O(nlogm)O(max(n,m))代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单(也不见得简单啊)时间:20min题目爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。因为他们是朋友,所以他们想交换一根糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[原创 2021-02-01 12:06:23 · 250 阅读 · 0 评论 -
[leetcode每日一题2021/1/31]839. 相似字符串组【困难】并查集
相似字符串组题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难tag: 并查集题目如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等,那么称 X 和 Y 两个字符串相似。如果这两个字符串本身是相等的,那它们也是相似的。例如,“tars” 和 “rats” 是相似的 (交换 0 与 2 的位置); “rats” 和 “arts” 也是相似的,但是 “star” 不与 “tars”,“rats”,或 “arts” 相似。总之,它们通原创 2021-01-31 15:32:51 · 185 阅读 · 0 评论 -
[leetcode每日一题2021/1/23]1319. 连通网络的操作次数【中等】并查集
连通网络的操作次数题目思路并查集代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等时间:10min题目用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计原创 2021-01-23 11:12:18 · 258 阅读 · 1 评论 -
[leetcode每日一题2021/1/13]684. 冗余连接【中等】并查集
冗余连接题目思路并查集代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等题目在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着原创 2021-01-14 11:02:54 · 401 阅读 · 0 评论 -
[leetcode-并查集入门]990. 等式方程的可满足性【中等】并查集入门
等式方程的可满足性题目思路并查集并查集的优化路径压缩隔代压缩完全压缩按“秩”合并本题解法代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等题目给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false原创 2021-01-07 11:57:19 · 167 阅读 · 1 评论 -
[leetcode-2018年408数据结构算法]41. 缺失的第一个正数
缺失的第一个正数题目思路原地哈希代码算法复杂度总结题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难用时:–(确实比较难想到)题目给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。思路原地哈希记录一下,学习le原创 2020-11-22 08:07:09 · 444 阅读 · 0 评论 -
[leetcode每日一题2020/9/20]78. 子集
子集题目思想代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:9min(难得一遍过(测试的时候))题目给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]思想方法一:回溯中,子集树的思想方法二:枚举0~原创 2020-09-20 08:50:33 · 115 阅读 · 0 评论 -
[leetcode每日一题2020/9/9]39. 组合总和
组合总和题目思路如何找出不重复的组合?代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:大概20min题目给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。 解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7]原创 2020-09-09 09:07:58 · 173 阅读 · 2 评论 -
[leetcode每日一题2020/9/8]77. 组合
组合题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:大概40min题目给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]思路对于n=4,k=2这个例子我们可以通过合理的枚举,输出所有可能的组合形式枚举1~4中 k=2的1的可能所有组合就等于原创 2020-09-08 09:41:00 · 137 阅读 · 0 评论 -
[leetcode每日一题2020/9/7]347. 前 K 个高频元素
前 K 个高频元素题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:大概30min题目给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]思路本题类似【第k大的元素】的题目。故解法与其类似。1. 直接排序 O(logn)(好像这题会超时)2. 堆先建最小堆:O原创 2020-09-07 10:20:42 · 134 阅读 · 0 评论 -
[leetcode每日一题2020/9/5]117. 二叉树的层次遍历 II
二叉树的层次遍历 II题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:只能做做简单题了题目给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]原创 2020-09-06 10:12:18 · 110 阅读 · 0 评论 -
[leetcode每日一题2020/9/4]257. 二叉树的所有路径
二叉树的所有路径题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:10分钟左右(比较简单题目给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3思路DFS当前结点的路径 =原创 2020-09-04 09:49:28 · 126 阅读 · 0 评论 -
[leetcode每日一题2020/8/21]111. 二叉树的最小深度
二叉树的最小深度题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:10分钟左右题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.思路比较简单就是,广度遍历,按层,每进入一层,【答案原创 2020-08-21 10:24:35 · 283 阅读 · 0 评论 -
[leetcode每日一题2020/8/18]109. 有序链表转换二叉搜索树
有序链表转换二叉搜索树题目思路代码分治+先序遍历分治+中序遍历算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:忘了,应该不是很久,一开始还没想到【中序遍历】题目给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5原创 2020-08-18 17:59:12 · 161 阅读 · 0 评论 -
[leetcode每日一题2020/8/17]110. 平衡二叉树
平衡二叉树题目思路代码自顶向下自底向上算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:10:00 (一开始有小漏洞)题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:原创 2020-08-17 09:24:26 · 352 阅读 · 0 评论 -
[leetcode每日一题2020/8/16]733. 图像渲染
图像渲染题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:10:00 (难得一遍过)题目有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符原创 2020-08-16 10:19:10 · 298 阅读 · 0 评论 -
[leetcode每日一题2020/8/14]20. 有效的括号
有效的括号题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:10:00 (特殊情况忘记考虑了)题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入:原创 2020-08-14 09:57:19 · 172 阅读 · 0 评论 -
[leetcode每日一题2020/8/13]43. 字符串相乘
字符串相乘题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:02:00:00 (想法有点多,矛盾了好久)题目给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和原创 2020-08-13 13:25:30 · 171 阅读 · 0 评论 -
[leetcode每日一题2020/8/12]133. 克隆图
克隆图题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:01:00:00 (思路很快就有了,后面稍微修正了一下,也挺快的)题目给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:原创 2020-08-12 11:21:26 · 200 阅读 · 0 评论 -
[leetcode每日一题2020/8/11]130. 被围绕的区域
被围绕的区域题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:00:10:00 (看了示例的解释之后,豁然开朗啊)题目给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区原创 2020-08-11 12:44:20 · 206 阅读 · 1 评论 -
[leetcode每日一题2020/8/10]696. 计数二进制子串
计数二进制子串题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:20:00 (一开始没往最优算法想。。硬是想着优化了)题目给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“001原创 2020-08-10 13:21:07 · 186 阅读 · 0 评论 -
[leetcode每日一题2020/8/9]93. 复原IP地址
复原IP地址题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:01:00:00 (突然就写出来了)题目给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]思路由于是ipv4的地址格式,那么分析可以原创 2020-08-09 14:01:09 · 286 阅读 · 0 评论 -
[leetcode每日一题2020/8/7]100. 相同的树
相同的树题目思路如何记录一棵树的结构?代码官方提供的优法算法算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:简单用时:00:20:00(出了个小意外,总体来说比较简单)题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,原创 2020-08-07 18:59:52 · 127 阅读 · 0 评论 -
[leetcode每日一题2020/8/6]336. 回文对
回文对题目思路代码未优化算法优化算法算法复杂度分析本代码结果题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:困难用时:03:00:00(看攻略了,这题解法确实没想到)题目给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。示例 1:输入: ["abcd","dcba","lls","s","sssll"]输出: [[0,1],[1,0],[3,2],[2,4]] 解释: 可拼接成原创 2020-08-06 23:24:09 · 209 阅读 · 0 评论 -
[leetcode每日一题2020/8/5]337. 打家劫舍 III
打家劫舍 III题目思路代码算法复杂度题目来源于leetcode,解法和思路仅代表个人观点。传送门。难度:中等用时:03:00:00(大概3小时吧,思路有点bug)题目在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况原创 2020-08-05 18:50:05 · 172 阅读 · 0 评论