草庐IT

leetcode刷题(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]//由于是取到最⼩,因此枚举的过程中要尽量让数组的⻓度最⼩//枚举开始

leetcode 100.相同的树

涉及到递归,最好多画图理解,希望对你们有帮助100.相同的树题目给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。题目链接力扣(LeetCode)官网-全球极客挚爱的技术成长平台文字和画图分析思考递归进行的条件和结束的条件是什么列举递归可能会出现的情况针对上面两个问题进行解答:要想找两个树的结构相同有点麻烦,换个思路,我们找它们不同所以我们需要先对比两者的根节点,再去对比左子树和右子树[很明显,我们采取的是前序遍历整个节点]在递归的时候,每一次根节点都发生变化,只要根节点对应的数值不同,就返回false结束递归(

LeetCode算法题解(动态规划)|LeetCoed62. 不同路径、LeetCode63. 不同路径 II

一、LeetCoed62.不同路径题目链接:62.不同路径题目描述:一个机器人位于一个 mxn 网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?示例1:输入:m=3,n=7输出:28示例2:输入:m=3,n=2输出:3解释:从左上角开始,总共有3条路径可以到达右下角。1.向右->向下->向下2.向下->向下->向右3.向下->向右->向下示例3:输入:m=7,n=3输出:28示例4:输入:m=3,n=3输出:6提示:1题目数据保证答案小于等于 2*109算法分析:dp

Java LeetCode篇-二叉树经典解法(实现:判断平衡二叉树、找两个节点最近的祖先等)

🔥博客主页: 【小扳_-CSDN博客】❤感谢大家点赞👍收藏⭐评论✍  文章目录    1.0平衡二叉树    1.1实现判断平衡二叉树的思路    1.2代码实现判断平衡二叉树    2.0二叉树的层序遍历        2.1实现二叉树层序遍历的思路     2.2代码实现二叉树层序遍历    3.0二叉树的最近公共祖先        3.1实现二叉树的最近公共祖先的思路    3.2 代码实现二叉树的最近公共祖先    4.0根据二叉树创建字符串    4.1实现根据二叉树创建字符串的思路    4.2代码实现根据二叉树创建字符串    1.0平衡二叉树题目:        给定一个二叉树

代码随想录 Day43 动态规划11 LeetCode T309 买卖股票的最佳时期含冷冻期 T714买卖股票的最佳时机含手续费

LeetCodeT309买卖股票的最佳时机含冷冻期题目链接:309.买卖股票的最佳时机含冷冻期-力扣(LeetCode)题目思路:这题其实就是将卖出的状态拆分成三个状态1.前两天就卖出并一直保持卖出的状态2.今天卖出的状态3.今天是冷冻期的状态当然还有一个持有的状态下面我们用动规五部曲来分析1.确定dp数组含义dp[i][j]同样表示第i天在第j个状态的最大钱数2.确定递推公式//持有状态要么是之前就是持有状态的延续,要么就是冷冻期结束买入,要么就是卖出状态买入,三者取最大值即可dp[i][0]//卖出持续状态  维持前面的卖出状态或者是冷冻期结束维持卖出状态dp[i][1]//当天卖出状态就

算法leetcode|92. 反转链表 II(rust重拳出击)

文章目录92.反转链表II:样例1:样例2:提示:进阶:分析:题解:rust:go:c++:python:java:92.反转链表II:给你单链表的头指针head和两个整数left和right,其中left。请你反转从位置left到位置right的链表节点,返回反转后的链表。样例1:输入: head=[1,2,3,4,5],left=2,right=4 输出: [1,4,3,2,5]样例2:输入: head=[5],left=1,right=1 输出: [5]提示:链表中节点数目为n1-5001进阶:你可以使用一趟扫描完成反转吗?将链表分成3部分,即前面不需要反转的部分,中间需要反转的

Java LeetCode篇-深入了解关于栈的经典解法(栈实现:中缀表达式转后缀)

🔥博客主页: 【小扳_-CSDN博客】❤感谢大家点赞👍收藏⭐评论✍   文章目录    1.0中缀表达式转后缀说明    1.1实现中缀表达式转后缀思路    2.0逆波兰表达式求值    2.1实现逆波兰表达式求值思路    3.0有效的括号    3.1实现有效的括号思路    4.0栈的压入、弹出序列    4.1实现栈的压入、弹出序列思路    5.0最小栈    5.1实现最小栈思路    1.0中缀表达式转后缀说明        中缀表达式转后缀表达式是一种常见的算术表达式转换方法,它将中缀表达式(即常见的人类习惯的表达方式,例如("3+4*2")转换为后缀表达式(也称为逆波兰表达