![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法+leetcode
文章平均质量分 53
leetcode算法刷题
MYH永恒
这个作者很懒,什么都没留下…
展开
-
数据结构与算法分类
数据结构和算法的简单分类,后面再针对每一个进行学习和刷题。原创 2022-09-18 17:37:48 · 562 阅读 · 1 评论 -
112. 路径总和(力扣)
今日份递归题目。虽然我没有掌握这题递归的精髓,但能独立想出来这种方法我觉得也挺好的了。利用到了栈。我是将每条路径上的和全部都求出来了。而正常的递归方法是减去每一次遍历的节点,当减去到叶子节点和剩下的数字相同的话,那么这个时候就存在这条路径,否则就不存在。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig原创 2021-05-07 19:48:33 · 234 阅读 · 1 评论 -
递归虐我千百遍,下一句是啥来着?
废话不多说,直接上题目。真的应该算是比较简单的一道题目了,可我又是看了解析恍然大悟!!!目录方法一:深度优先遍历方法二:递归方法一:深度优先遍历先深度优先遍历,将树的所有节点中的值放进一个容器中,后面再比较容器中的值是否相等。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * Tree原创 2021-05-06 20:03:00 · 229 阅读 · 0 评论 -
递归真的那么难?我!信!了!
上篇文章记录了我做递归题目的一点点灵感,然后我现在发现我高兴的太早了。。。这不趁着五一假期结束之前赶紧又做了一题递归题目,然后经过我仔细分析,根据我前面总结的经验,感觉还好,用给的示例运行也是对的,然后我很高兴的点击了提交,果不其然,解答错误。。。。。话不多说,来看看怎么错的吧!目录题目提交1(×)提交2(√):自顶向下提交3(√):自底向上题目110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝原创 2021-05-05 20:46:49 · 310 阅读 · 0 评论 -
递归真的这么难?我!不!信!
说到递归,学习过的筒子们应该都不陌生了吧。陌生是不陌生,知道有这么一个东西,但是真心不会做呀!不要慌,其实我也不大会做。。。所以递归真的有那么难吗?没错,我觉得他真的不是很简单(至少对于我来讲,那些一看就会的就请绕道了哈,我就不撵你们了)还记得刚开始接触递归的时候,应该是那个斐波那契数列了。然后后面学习数据结构,用的最多的就是在树里面了,反正学的是云里雾里,遇到递归题目自己怎么想也想不起来,一看答案就好像知道:哎,好像是这么回事!然后自己再写,还是不会写!啊这,可能这就是一废物吧。。。没有办法,为了原创 2021-05-03 19:08:23 · 2631 阅读 · 3 评论 -
1021. 删除最外层的括号
有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有效括号字符串。给出一个非空有效字符串 S,考虑将其进行原语化分解,使得:S = P_1 + P_2 + … + P_k,其中 P_i 是有效括号字符原创 2021-04-05 20:41:51 · 244 阅读 · 0 评论 -
109. 有序链表转换二叉搜索树
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树:思路:由于是有序的,所以需要找到中间的节点作为树的根节点。并利用分治的思想,递归的调用这个函数,找到左子树和右子树的根节点。代码:/** * Definiti原创 2021-03-28 21:08:44 · 195 阅读 · 0 评论 -
445. 两数相加 II
给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 8 -> 0 -> 7解答:思路1:刚拿到这个题目的时候,第一反应就是和我们平原创 2021-03-28 20:44:28 · 118 阅读 · 0 评论 -
1689. 十-二进制数的最少数目
1689.十-二进制数的最少数目如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。示例 1:输入:n = “32”输出:3解释:10 + 11 + 11 = 32示例 2:输入:n = “82734”输出:8示例 3:输入:n = “273462098307091823原创 2021-01-26 22:24:11 · 260 阅读 · 0 评论 -
5645. 找到最高海拔
5645.找到最高海拔有一个自行车手打算进行一场公路骑行,这条路线总共由 n + 1 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。给你一个长度为 n 的整数数组 gain ,其中 gain[i] 是点 i 和点 i + 1 的 净海拔高度差(0 <= i < n)。请你返回 最高点的海拔 。示例 1:输入:gain = [-5,1,5,0,-7]输出:1解释:海拔高度依次为 [0,-5,-4,1,1,-6] 。最高海拔为 1 。示例 2:输入:gain = [-原创 2021-01-24 17:32:51 · 229 阅读 · 0 评论 -
1684.统计一致字符串的数目
给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words 。如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致字符串 。请你返回 words 数组中 一致字符串 的数目。示例 1:输入:allowed = “ab”, words = [“ad”,“bd”,“aaab”,“baa”,“badab”]输出:2解释:字符串 “aaab” 和 “baa” 都是一致字符串,因为它们只包含字符 ‘a’ 和 ‘b’ 。示例 2:输入:allowed = “abc”原创 2021-01-23 15:35:14 · 151 阅读 · 0 评论 -
1232.缀点成线
1232.缀点成线在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。示例 1:输入:coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]输出:true示例 2:输入:coordinates = [[1,1],[2,2原创 2021-01-21 15:34:50 · 140 阅读 · 0 评论