随笔分类 -  算法

刷题力扣
摘要:思路: (1)假设根节点在第零层,这样的话,偶数层从左往右遍历,奇数层从右往左遍历。 (2)假设使用队列,而且9下面有子节点 第0层没问题, 第1层要想实现从右往左遍历,得先入队20,再入队9, 但是第2层又要从左往右遍历了,但是第一行先出队的确是20,这就不行了,得先入队9的节点才行,这样第二层才 阅读全文
posted @ 2020-05-06 15:05 弓呆的胖次 阅读(306) 评论(0) 推荐(0)
摘要:思路:和105题一样,这次根节点在后续遍历的最后,找到它;之后在中序遍历里找到根节点。Arrays.copyOfRange()函数找出中序数组和后续数组的左右子树序列,递归,构成树,返回根节点。。。不细说了。感觉挺简单。 /** * Definition for a binary tree node 阅读全文
posted @ 2020-05-06 14:11 弓呆的胖次 阅读(144) 评论(0) 推荐(0)
摘要:思路:前序是根左右,前序序列第一个元素一定是根。中序是左,根,右。根节点左边一定是左子树,右边一定是右子树。 树没有重复元素,所以,先找出根节点,初始化一个TreeNode root,再根据数值相同,找中序遍历里面的根节点,之后用Arrays.copyOfRange(preorder,1,num+1 阅读全文
posted @ 2020-05-06 11:18 弓呆的胖次 阅读(192) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/MoreWindows/article/details/6684558 阅读全文
posted @ 2020-05-05 12:44 弓呆的胖次 阅读(104) 评论(0) 推荐(0)
摘要:必须得新建一个函数,函数里两个参数这样写,比如上图第一个二叉树,第三方第一个与最后一个3是对称的,但是父节点不同,假如写成一个函数,没法比较 /** * Definition for a binary tree node. * public class TreeNode { * int val; * 阅读全文
posted @ 2020-05-05 10:35 弓呆的胖次 阅读(126) 评论(0) 推荐(0)
摘要:递归即可 1,如果其中一个根节点为null,不是 2.如果两个根节点都为null,是 3.如果都不为null,且根节点值不同,不是 4.都不为null,根节点值相同,再分别递归比较两个树的左子树,右子树 class Solution {//递归,不用层次遍历 public boolean isSam 阅读全文
posted @ 2020-05-05 10:33 弓呆的胖次 阅读(135) 评论(0) 推荐(0)
摘要:用递归即可 因为是二叉搜索树,也就是根大于左子节点,根小于右子节点,这就好办了,对于每个可能的根节点,求出所有左右子树的集合,双循环配对 /** * Definition for a binary tree node. * public class TreeNode { * int val; * T 阅读全文
posted @ 2020-05-05 10:01 弓呆的胖次 阅读(145) 评论(0) 推荐(0)
摘要:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 思路: 阅读全文
posted @ 2020-05-05 09:27 弓呆的胖次 阅读(149) 评论(0) 推荐(0)
摘要:思路: 先序遍历:根-左,右 中序遍历:左,根,右 后序遍历:左-右-根 可以发现,只是访问根节点顺序不同而已‘ 后序遍历,左右根,也就是根右左然后逆序!!!(先序遍历是根左右,则后续遍历时候入栈时先入左边再右边)最后的结果逆序输出一下就行! /** * Definition for a binar 阅读全文
posted @ 2020-05-04 15:18 弓呆的胖次 阅读(352) 评论(0) 推荐(0)
摘要:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/solution/er-cha-shu-de-ceng-ci-bian-li-by-leetcode/ /** * Definition for a binary t 阅读全文
posted @ 2020-05-04 15:10 弓呆的胖次 阅读(182) 评论(0) 推荐(0)
摘要:思路:前序遍历,也就是“根,左,右”的顺序去遍历,递归思路简单,不细说了,把res,结果集合设置成全局变量就行 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; 阅读全文
posted @ 2020-05-04 14:44 弓呆的胖次 阅读(138) 评论(0) 推荐(0)
摘要:思路:中序遍历,就是按照“左,中,右”的顺序遍历一个二叉树。 1.递归,先递归左子树,之后把根节点放进res里,在递归右节点即可,可以把res设置为全局变量,或者再写一个函数,res当成参数传递都可以。代码如下,比较简单。 /** * Definition for a binary tree nod 阅读全文
posted @ 2020-05-04 14:24 弓呆的胖次 阅读(315) 评论(0) 推荐(0)
摘要:用两个指针就行,一个指针i初始时指向头元素,另一个j指向下标为1的元素(所以说,当长度为1时单独判断,长度为1就返回1) 之后,如果i下标的元素等于j下标的元素,j++,假如到了i和j代表的元素不等时,说明i,j中间这些都是重复元素,都是等于nums[i]的元素,此时,nums[i+1]=nums[ 阅读全文
posted @ 2020-05-04 13:55 弓呆的胖次 阅读(143) 评论(0) 推荐(0)
摘要:转载 https://leetcode-cn.com/problems/jump-game/solution/fan-xiang-kao-lu-dang-bu-de-bu-tiao-dao-0de-shi-ho/ 思路: 首先,求的是跳到最后一个元素,最后一个元素的最大步数明显可以是0,因为跳到最后 阅读全文
posted @ 2020-04-30 10:28 弓呆的胖次 阅读(150) 评论(0) 推荐(0)
摘要:思路:等于是说,让我们顺时针一圈一圈的遍历一个矩阵,结果放在一个List里面。 1.因为是一圈一圈遍历,可以用四个点标记当前这个矩阵的四个角,然后按照行列行列的次序,把每个点加入结果结合里面。有四个点:c1,c2,r1,r2,分别是最左边的列的下标,最右边的列的下标,最上面行的下标,最下面行的下标。 阅读全文
posted @ 2020-04-30 09:52 弓呆的胖次 阅读(512) 评论(0) 推荐(0)
摘要:思路:https://leetcode-cn.com/problems/maximum-subarray/solution/zheng-li-yi-xia-kan-de-dong-de-da-an-by-lizhiqiang/ 思路一:分治法 分治法基本思路: 1.分解:把原问题分解成若干个大小相近 阅读全文
posted @ 2020-04-30 09:00 弓呆的胖次 阅读(2123) 评论(0) 推荐(0)
摘要:思路:和上一题相比,多了障碍物,思路还是一样的,先把x==0,y==0时的res赋值为1,假如遇到给出的数组的这两行里有障碍物,从障碍物开始不继续赋值为1(初始化之后的数组,默认每个数为0) 之后。。。还是老样子,obstacleGrid[i][j]==1时,跳过,看代码吧,没啥难度我感觉。。。 c 阅读全文
posted @ 2020-04-29 10:34 弓呆的胖次 阅读(133) 评论(0) 推荐(0)
摘要:思路:机器人一次只能向下或向右移动一步。也就是说,从下标(0,0)开始走的机器人,下标x或者下标y为0的这两列,都只有一种路径,因为从(0,0)走到(0,x),(y,0)只能一步一步向下或向右走,一种路径。 当x,y下标不为0时,(x,y)处的路径,很显然,等于(x-1,y)路径数加(x,y-1)的 阅读全文
posted @ 2020-04-29 10:22 弓呆的胖次 阅读(158) 评论(0) 推荐(0)
摘要:思路:求的是x的n次方,如果是写一个循环,肯定会超时。 假如已经知道了x的n次方,该怎么求x的2n次方呢?肯定不需要循环乘x乘n次了,x的n次方的平方,就等于x的2n次方。 假如求x的n次方,n是偶数,可以先求x的n/2次方,之后求个平方。 假如n是奇数,先求x的n/2次方,再求平方,之后再乘以x就 阅读全文
posted @ 2020-04-29 09:52 弓呆的胖次 阅读(223) 评论(0) 推荐(0)
摘要:思路: 方法一:排序数组分类思路 当且仅当它们的排序字符串相等时,两个字符串是字母异位词。 算法 维护一个映射 ans : {String -> List},其中每个键 \text{K}K 是一个排序字符串,每个值是初始输入的字符串列表,排序后等于 \text{K}K。 在 Java 中,我们将键存 阅读全文
posted @ 2020-04-29 09:12 弓呆的胖次 阅读(165) 评论(0) 推荐(0)