草庐IT

leetcode刷题(3)

全部标签

LeetCode刷题之树

关于二叉树的题,几乎都会用到递归的解法来做。树用到节点TreeNode类:publicclassTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(intx){val=x;}}104.二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/920/157返回它的最大深度3。题解:classSolution{/***节点为空时说明高度为0,所以返回0;节点不为空时则分别求左右子树的高度的最大值,

LeetCode 周赛 335,纯纯手速场!

大家好,我是小彭。昨晚是LeetCode第335场周赛,你参加了吗?这场周赛整体难度不高,有两道模板题,第三题和第四题应该调换一下位置。2582.递枕头(Easy)题目地址https://leetcode.cn/problems/pass-the-pillow/题目描述n个人站成一排,按从1到n编号。最初,排在队首的第一个人拿着一个枕头。每秒钟,拿着枕头的人会将枕头传递给队伍中的下一个人。一旦枕头到达队首或队尾,传递方向就会改变,队伍会继续沿相反方向传递枕头。例如,当枕头到达第n个人时,TA会将枕头传递给第n-1个人,然后传递给第n-2个人,依此类推。给你两个正整数n和time,返回t题解一(

LeetCode - #66 加一

前言我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新了65期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:简单1.描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单

图解LeetCode——481. 神奇字符串(难度:中等)

一、题目神奇字符串s仅由'1'和'2'组成,并需要遵守下面的规则:神奇字符串s的神奇之处在于,串联字符串中'1'和'2'的连续出现次数可以生成该字符串。s的前几个元素是s="1221121221221121122……"。如果将s中连续的若干1和2进行分组,可以得到"1221121221221121122......"。每组中1或者2的出现次数分别是"122112122122......"。上面的出现次数正是s自身。给你一个整数n,返回在神奇字符串s的前n个数字中1的数目。二、示例2.1>示例1:【输入】n=6【输出】3【解释】神奇字符串s的前6个元素是“122112”,它包含三个1,因此返回3

【算法刷题之数组篇(1)】

目录1.leetcode-59.螺旋矩阵II(题2.题3相当于二分变形)2.leetcode-33.搜索旋转排序数组3.leetcode-81.搜索旋转排序数组II(与题目2对比理解)(题4和题5都是排序+双指针)4.leetcode-15.三数之和5.leetcode-18.四数之和6.leetcode-80.删除有序数组中的重复项II(通解方法)1.leetcode-59.螺旋矩阵II(1)题目描述给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的nxn正方形矩阵matrix。(2)方法与思路(模拟)1.首先明白螺旋矩阵的拐点是在哪里,并且在旋转一周后边界值会有哪

LeetCode 2605. Form Smallest Number From Two Digit Arrays【数组,哈希表,枚举;位运算】1241

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conquest。在这一仓库中,你不仅可以看到LeetCode原题链接、题解代码、题解文章链接、同类题目

力扣算法刷题Day42|动态规划:01背包问题 分割等和子集

力扣题目:01背包问题(二维数组)刷题时长:参考题解解题方法:动态规划+ 二维dp数组复杂度分析时间空间问题总结理解递推公式困难本题收获动规思路:两层for循环,第一层i遍历物品,第二层j枚举背包容量以内所有值确定dp数组及下标的含义:dp[i][j]表示从下标为[0-i]的物品范围中任意取,放进容量为j的背包后价值总和的最大值确定递推公式:dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i])当背包容量小于物品重量,不放物品,此时价值总和为dp[i-1][j]。即当物品i的重量大于背包j的重量时,物品i无法放进背包中,所以背包内的价值依然

LeetCode #1131 Maximum of Absolute Value Expression 绝对值表达式的最大值

1131MaximumofAbsoluteValueExpression绝对值表达式的最大值Description:Giventwoarraysofintegerswithequallengths,returnthemaximumvalueof:|arr1[i]-arr1[j]|+|arr2[i]-arr2[j]|+|i-j|wherethemaximumistakenoverall0Example:Example1:Input:arr1=[1,2,3,4],arr2=[-1,4,5,6]Output:13Example2:Input:arr1=[1,-2,-5,0,10],arr2=[0,-

leetcode算法—236 二叉树的最近公共祖先(中等)

236.二叉树的最近公共祖先给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树:root=[3,5,1,6,2,0,8,null,null,7,4]一棵调皮的二叉树1.总结二叉树算法的核心就是遍历(前中后序遍历算法)p、q两个节点如何在二叉树上定位到(前序遍历);若找到最近公共祖先,那么必须处理完左右节点后才能得到父节点(后序遍历)源代码:publicclassTreeNode{intval;TreeNo

LeetCode力扣 精选数据库70题 (SQL自学记录)

目录512.游戏玩法分析II534.游戏玩法分析III550.游戏玩法分析IV 重难点569.员工薪水中位数578.查询回答率最高的问题  重难点579.查询员工的累计薪水584ifnull的用法5852016的投资597好友申请总通过率602好友申请607销售员614二级关注者617平均工资:部门与公司比较618学生地理位置511写一条SQL查询语句获取每位用户第一次登陆平台的日期。题目解答思路:可以用窗口函数;也可以用最小值函数min##最小函数selectplayer_id,min(event_date)asfirst_loginfromActivitygroupbyplayer_id#