草庐IT

LeetCode刷题之树

全部标签

leetcode(平衡二叉树)

https://leetcode.cn/problems/balanced-binary-tree/description/这题的思路分成子问题就是计算左右子树的高度然后相减看看是不是大于1的就可以了,所以代码如下int_isBalanced(structTreeNode*root){if(root==NULL){return0;}intleftdepth=_isBalanced(root->left);intrightdepth=_isBalanced(root->right);returnleftdepth>rightdepth?leftdepth+1:rightdepth+1;}bool

算法leetcode|93. 复原 IP 地址(多语言实现)

文章目录93.复原IP地址:样例1:样例2:样例3:提示:分析:题解:rust:go:c++:python:java:93.复原IP地址:有效IP地址正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。例如:"0.1.2.201"和"192.168.1.1"是有效IP地址,但是"0.011.255.245"、"192.168.1.312"和"192.168@1.1"是无效IP地址。给定一个只包含数字的字符串s,用以表示一个IP地址,返回所有可能的有效IP地址,这些地址可以通过在s中插入'.'来形成。你不能重新排序或删除s中的任何数字。你可以按任何顺序返回答

动态规划经典例题leetcode思路代码详解

目录动态规划基础篇例题leetcode70题.爬楼梯leetcode746题.使用最小花费爬楼梯leetcode198题.打家劫舍leetcode62题.不同路径leetcode64题.最小路径和leetcode63题.63不同路径II动态规划基础篇例题这一篇的例题解答是严格按照我上一篇写的动态规划三部曲做的,对动态规划不太了解或者比较感兴趣的朋友可以看我上一篇文章。动态规划算法详解基础篇-CSDN博客leetcode70题.爬楼梯70.爬楼梯-力扣(LeetCode)假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例1:输

【贪心算法】【中位贪心】LeetCode:100123.执行操作使频率分数最大

涉及知识点双指针C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例包括课程视频贪心算法题目给你一个下标从0开始的整数数组nums和一个整数k。你可以对数组执行至多k次操作:从数组中选择一个下标i,将nums[i]增加或者减少1。最终数组的频率分数定义为数组中众数的频率。请你返回你可以得到的最大频率分数。众数指的是数组中出现次数最多的数。一个元素的频率指的是数组中这个元素的出现次数。示例1:输入:nums=[1,2,6,4],k=3输出:3解释:我们可以对数组执行以下操作:选择i=0,将nums[0]增加1。得到数组[2,2,6,4]。选择i=3,将nums[3]减少1,得到数组[2,

python经典百题之从小到大输出

题目:输入三个整数x,y,z,请把这三个数由小到大输出。可以使用条件判断语句来实现,比较大小后交换位置输出。具体代码如下:x=int(input("请输入第一个整数:"))y=int(input("请输入第二个整数:"))z=int(input("请输入第三个整数:"))ifx>y:x,y=y,xifx>z:x,z=z,xify>z:y,z=z,yprint("从小到大输出为:",x,y,z)示例输出:请输入第一个整数:5请输入第二个整数:2请输入第三个整数:7从小到大输出为:257可以使用冒泡排序来实现:x,y,z=map(int,input().split())#冒泡排序arr=[x,y,

leetcode 144. 二叉树的前序遍历

 这里面有一个知识点我没有详细讲(求节点个数),大概我后期会讲一下,先了解这题思路即可144.二叉树的前序遍历题目给你二叉树的根节点root,返回它节点值的前序遍历。题目链接力扣(LeetCode)官网-全球极客挚爱的技术成长平台文字和画图分析分析参数代表的实际意义    2.思考递归结束条件和进行条件这题的递归结束条件和进行条件都很明显:遇到空树结束条件,否则进行   3.做题遇到的问题问题一:局部变量销毁还传它的地址这里明显需要把数据放入一个数组里面,然而从给出的参数来看,并没传数组的地址,由此可知,需要我们自己创建数组,由于数组是在函数内部创建的,出了作用域就销毁,所以这里的数组我们应该

Leetcode算法系列| 1. 两数之和(四种解法)

目录1.题目2.题解解法一:暴力枚举解法二:哈希表解法解法三:双指针(有序状态)解法四:二分查找(有序状态)1.题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。示例2:输入:nums=[3,2,4],target=6输出:[1,2]示例3:输入:nums=[3,3

leetcode 101.对称二叉树

 学习这部分还是要多画图,多思考101.对称二叉树题目给你一个二叉树的根节点root,检查它是否轴对称。题目链接力扣(LeetCode)官网-全球极客挚爱的技术成长平台文字和画图分析  明确结束条件和继续递归条件判断是否对称,我们一定是拿左子树和右子树进行对比,(这里的根节点反而没有那么重要)如下图,这是遍历思路图1:图2:从图我们可以知道:结束条件有以下几种情况:当左子树的值不等于右子树的值,返回false当左子树和右子树都为空,返回true(如图一3,4号)当左子树和右子树只有一个为空,返回false(如图二2号)(结束条件有先后顺序,为了防止是空树现象,一定要先验证这个)从图中可以明白,

大数据:Hadoop刷题

大数据:Hadoop刷题2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库这oracle比sql安全,强大多了,所以你需要学习,最重要的,你要是考网络警察公务员,这玩意你不会就别去报名了,耽误时间!与此同时,既然要考网警之数据分析应用岗,那必然要考数据挖掘基础知识,今天开始咱们就对数据挖掘方面的东西好生讲讲最最最重要的就是大数据,什么行测和面试都是小问题,最难最最重要的就是大数据技术相关的知识笔试文章目录大数据:H

滑动窗口如人生,回顾往事不复还———力扣刷题

第一题:长度最小的子数组力扣(LeetCode)官网-全球极客挚爱的技术成长平台思路:第一想法肯定时暴力枚举,枚举数组任何一个元素,把他当起始位置,然后从起始位置找最短区间,使得区间和大于等于目标值利用两个嵌套for循环,如果符合条件就记录,然后更新结果,返回classSolution{public:intminSubArrayLen(inttarget,vector&nums){//记录结果intret=INT_MAX;intn=nums.size();//枚举出所有满⾜和⼤于等于target的⼦数组[start,end]//由于是取到最⼩,因此枚举的过程中要尽量让数组的⻓度最⼩//枚举开始