- 博客(10)
- 收藏
- 关注
原创 LeetCode104 二叉树的最大深度
题目链接: LeetCode104 二叉树的最大深度.题目描述解题思路直接dfs,记录节点的左子树最大深度,再遍历右子树,如果遇到比当前最大深度大的节点,用该节点的深度更新当前最大深度即可。代码如下:class Solution { public int maxDepth(TreeNode root) { int[] ans=new int[1]; ans[0]=0; dfs(root,1,ans); return ans[0
2021-10-01 21:18:18
114
原创 LeetCode662二叉树最大宽度
题目链接: LeetCode662二叉树最大宽度.题目描述解题思路通过层序遍历,找出每层最左边的节点与最右边的节点之间的距离,并用此距离更新maxWidth。如何求解该距离时本题的关键。我们知道,对于二叉树而言,如果根节点从1开始编号,那么假设一个节点的编号是n,那么其左孩子编号就是2n,右孩子编号就是2n+1,根据次特征可以使用数组来存储二叉树,会方便得多,但是力扣已经定义了树节点结构,所以还是得用链式存储的相关写法。那么,虽然每个节点都有自己的val,但是这个val对题目求解最大宽度并无任何
2021-10-01 20:51:33
143
原创 LeetCode582二叉树剪枝
题目链接: LeetCode582二叉树剪枝.题目描述解题思路采用dfs遍历每个节点的子树,如果其子树中出现了1,以该节点为根的树不删除;如果其左子树和右子树都不包含1,且该节点值为0,那么删除该节点。注意,这里说的"删除",是指改变该节点的父节点的指向,比如该节点是其父节点的左孩子,满足左右子树均不含1且自身的val为1,那么该节点的父节点的的left就指向null即可。还要注意,为什么不能直接将该节点置为null?因为Java的函数参数传递方式只有一种:值传递。基本数据类型是值传递不用多说,
2021-10-01 20:41:28
205
原创 Java使用stream进行数组离散化
Java数组离散化目录二分查找简介stream简介数组离散化的实现完整代码目录数组离散化应用场景:数组的值过大,不能用作数组的索引或者可用作数组索引但是会导致空间复杂度过大,而要解决的问题中只需要考虑元素之间的相对大小,不必考虑数组之间的绝对大小,比如求逆序对问题。数组离散化使用C++可很简单的实现,STL中有sort和unique,还有二分查找lower_bound。Java也有这些函数。本文使用jdk8的新特性—stream来实现数组离散化。二分查找简介二分查找应用场景:容器(数组或者集合)中的
2021-09-26 11:50:36
487
1
原创 01背包状态压缩内层循环逆序原因(图文并茂,通俗易懂)
01背包状态压缩内层循环逆序原因01背包简介动态规划递推公式及一维数组实现内层循环逆序原因01背包简介01背包问题指有N件物品和一个容量为V的背包,每件物品都有一个价值和一个体积,目的是使用容量为V的背包装价值尽可能大的物品。01背包问题时最典型的动态规划问题之一,掌握01背包问题的动态规划解法很重要。动态规划递推公式及一维数组实现动态规划解法:定义一个二维数组dp,dp的第一维用于枚举物品数量,第二位用于枚举容量,所以dp[i][j]代表:在前i件物品中选取总容量不超过j的物品能够获得的最大价值。
2021-08-24 13:10:22
2697
11
原创 pandas修改DataFrame的行名为指定范围的数
pandas想要修改行名,有reset_index()、set_index()、reindex()和reindex_like()方法。使用得较多的是reset_index(),其作用是使index的范围是[0,df.shape[0]),如果不指定drop参数的话,那么原本的index会保留下来并且作为第一列,例如已经有一个DataFrame,其index编号从60到70(左闭右开),如下:现在使用reset_index()方法对其操作:myDf=myDf.reset_index()结果如下:可
2021-08-19 20:04:41
795
原创 pandas改变列名为指定范围的数(列名不论多长都可以)
Pandas修改DataFrame列名为指定范围的数最近在用python写一些关于数据处理的东西,对pandas用得比较多。在使用过程中,经常需要修改df的列名以方便索引。经过搜索后我发现,网上的博文修改列名的用例都是可枚举的,也就是只有几个key-value对。很显然,当DataFrame的列很多的时候,一一去枚举就显得不显示了。如果需要将列名修改为指定范围的数,可以按照如下方法:oldColumns=df.columns.tolist()#获取原来的columns并转换成列表newColumns=
2021-08-19 19:25:17
661
原创 LeetCode 14. 最长公共前缀解题报告
LeetCode 14. 最长公共前缀题目链接:LeetCode 14.最长公共前缀题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。解法一:常规思路容易想到,整个字符串数组元素的最长公共前缀一定小于等于任意两个数组元素的最长公共前
2021-08-13 21:28:31
71
原创 Python+OpenCV+matplotlib+wxPython实现的图像处理程序
Python+OpenCV+matplotlib+wxPython实现的图像处理程序背景:本学期多媒体技术原理与应用课程的实验部分代码结果截图结语背景:本学期多媒体技术原理与应用课程的实验本学期有一门课程是多媒体技术原理与应用,虽然看培养方案上没有实践课程,但是老师居然还准备了好几个实验,看来老师真是为我们着想。这次是第一个实验,题目比较简单:编制程序,实现图像文件(如bmp等)的读取、显示、真彩图转换成灰度图、灰度图转化为二值图及绘制图像直方图功能;老师要求不允许在真彩图转灰度、灰度转二值图时不
2021-04-12 22:36:34
1292
9
LeetCode62不同路径解题记录
LeetCode62.不同路径 解题感想一.题目介绍二.解题思路及代码实现方法一:深度优先搜索(dfs)方法二:记忆化搜索方法三:动态规划方法四:组合数学法总结一.题目介绍题目链接:LeetCode62.不同路径;二.解题思路及代码实现方法一:深度优先搜索(dfs)由于是求从一个点到另一个点的路径有多少条,显而易见,可以采用深度优先搜索的方式,遍历所有路径,如果能够到达目标坐标的路径并统计路径数目然后返回。Java代码如下:class Solution { public int un
2021-03-20 21:33:11
407
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人