
算法
文章平均质量分 73
日常算法收获
庸人°
喂,程序猿,猫主子还在等你回家铲屎
展开
-
面试题——判断一个树是否为满二叉树
在一次面试中,面试官出题:判断一棵二叉树为满二叉树。由于比较紧张,有大概思路,但是最终没有实现。面试结束后整理了一下思路,将最后的逻辑捋清楚,完成了这道算法题,这里来总结一下。思路其实具体思路很简单,就是去遍历每一次每层节点,判断当前层的节点数与上层节点的关系。如果为满二叉树,一定每一层的节点数都是上层节点数的两倍。实现createTree看import {createTree} from '../算法模板/二叉树节点.js'let root = createTree(1, 2, 3, 4,原创 2022-02-23 22:02:38 · 940 阅读 · 0 评论 -
05. 70爬楼梯
题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶递归实现不得不说递归总是最容易被想到的一种方案,我们可以稍微思考一下怎么来规划最小单元呢。第原创 2021-12-23 18:18:19 · 72 阅读 · 0 评论 -
04. 二叉树中最大路径【力扣124】
题目描述路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。示例 1:输入:root = [1,2,3]输出:6解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6示例 2:输入:root = [-10,9,20,null,null,原创 2021-12-23 10:57:19 · 183 阅读 · 0 评论 -
JavaScript创建与遍历二叉树
二叉树可以算得上是数据结构和算法的必学项,很多关于树的算法题给的输入直接就是树结构,关于怎么构建一颗二叉树很多关于数据结构的树都说烂了。但是大都是基于c语言讲的,这里主要是想总结一下前端人都在用的JavaScript怎么来构建一颗二叉树。本文章是基于对象结构构建的二叉树,大致的结构也很简单,二叉树的每个节点无非就是三个属性值val、left、right分别代表节点值,左孩子,右孩子。为什么考虑用对象结构在实现二叉树构建而不是数组结构呢?其实是写这个构建之前考虑到树各个节点之前是通过地址连接的,数组是一个连原创 2021-12-22 22:13:57 · 2245 阅读 · 0 评论 -
JavaScript——二叉树层序遍历
题目描述给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层序遍历结果:[ [3], [9,20], [15,7]]递归实现代码 var levelOrder = function(root) { if (root === null) return [] l原创 2021-10-28 09:17:42 · 1800 阅读 · 0 评论 -
JavaScript——获取两个链表的第一个公共节点
题目描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围: n≤1000要求:空间复杂度 O(1),时间复杂度 O(n)示例1:输入:{1,2,3},{4,5},{6,7}返回值:{6,7}说明: 第一个参数{1,2,3}代表是第一个链表非公共部分, 第二个参数{4,5}代表是第二个链表非公共部分, 最后的{6,7}表示的是2个链表的公共部分这3个参数最后原创 2021-10-25 20:06:05 · 401 阅读 · 0 评论 -
JavaScript——反转链表
题目描述输入一个长度为n链表,反转链表后,输出新链表的表头。数据范围: n≤1000要求:空间复杂度 O(1) ,时间复杂度 O(n)。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例1:输入:{1,2,3}返回值:{3,2,1}示例2:输入:{}返回值:{}说明:空链表则输出空 递归实现先看代码:function ReverseList(pHead){ if(pHead === nul原创 2021-10-23 10:16:57 · 2086 阅读 · 0 评论