摘要: 给定一个二叉树,判断它是否是高度平衡的二叉树 平衡二叉树满足子树都为平衡二叉树且左右子树高度差的绝对值小于1 ###1. 平衡性和高度判断分离 从上往下对每一个节点判断其左右子树的高度是否满足要求 以及其左右子树是否是平衡二叉树 时间复杂度为O(n2) 可以发现对每个节点进行最大高度计算时,其实跟其 阅读全文
posted @ 2022-05-20 00:14 失控D大白兔 阅读(13) 评论(0) 推荐(0) 编辑
摘要: ###1. 最少的硬币个数 给你一个整数数组 coins,表示不同面额的硬币;以及一个整数amount,表示总金额。 计算并返回可以凑成总金额所需的**最少的硬币个数** 。如果没有任何一种硬币组合能组成总金额,返回-1 。 你可以认为每种硬币的数量是无限的。 跟完全平方数解法完全一致,不过完全平方 阅读全文
posted @ 2022-05-19 14:54 失控D大白兔 阅读(183) 评论(0) 推荐(0) 编辑
摘要: ###动态规划 给你一个整数n,返回和为n的完全平方数的最少数量 。 完全平方数是一个整数,其值等于另一个整数的平方,换句话说,其值等于一个整数自乘的积。 例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 思路: 回溯法常用来遍历输出全部路径,以及解决可达性问题 对于这种最优问题 阅读全文
posted @ 2022-05-19 14:43 失控D大白兔 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 ###1. 暴力法(超时) 三重循环(列所有数组) class Solution { public: int maxSubArray(vector<int>& nu 阅读全文
posted @ 2022-05-18 21:07 失控D大白兔 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。 给你石子的位置列表stones(用单元格序号升序表示,请判定青蛙能否成功过河(即能否在最后一步跳至最后一块石子上)。开始时,青蛙默认已站在第一块石子上 阅读全文
posted @ 2022-05-18 17:17 失控D大白兔 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。 你们轮流进行自己的回合,你作为先手 。 每一回合,轮到的人拿掉 1-3块石头。 拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 tru 阅读全文
posted @ 2022-05-17 00:51 失控D大白兔 阅读(51) 评论(0) 推荐(0) 编辑
摘要: ###1. 两两比较 把当前最长公共前缀与每一个字符串比较,并进行更新减小 class Solution { public: string longestCommonPrefix(vector<string>& strs) { if (!strs.size()) { return ""; } str 阅读全文
posted @ 2022-05-16 16:52 失控D大白兔 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。 ###1. 暴力双循环 双指针动态维持更新一个无重复子串,每移动一次右指针,判断新加入字符是否在子串中存在 若存在,则找出其在子串中位置,并更新左指针位置,时间复杂度O(n2) class Solution { public: int 阅读全文
posted @ 2022-05-16 09:46 失控D大白兔 阅读(29) 评论(0) 推荐(0) 编辑
摘要: ###一. 串的查找 ####1. [最长回文子串(中心扩散/动态规划)](https://www.cnblogs.com/929code/p/16250463.html) ####2. [最长无重复子串(双指针)](https://www.cnblogs.com/929code/p/1627584 阅读全文
posted @ 2022-05-16 08:27 失控D大白兔 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 树一般使用递归方式来拆分成子问题 ####1. 合并二叉树 class Solution { public: TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) { if(!root1&&!root2) return nullptr; if( 阅读全文
posted @ 2022-05-16 08:15 失控D大白兔 阅读(20) 评论(0) 推荐(0) 编辑