首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法150
欧浪浪
创建于2021-10-30
订阅专栏
Flag: 150+ 算法
等 4 人订阅
共90篇文章
创建于2021-10-30
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
JS求二叉树直径问题
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 : 给定二叉树 返回 3, 它的长度是路径 [4,2,1,3]
JS最长回文串
网图封面(狗头) 正题 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。 注意: 假设字符串的长
JS一行代码判断 有效的字母异位词
正题 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 先上代码: 乍一看代码虽然
JS判断整数快乐数
编写一个算法来判断一个数 n 是不是快乐数。 我以为快乐数看到他它就会快乐。 解析: 根据快乐树的定义,快乐树是将正整数的每一位(个十百千万...等等位)平方再相加的和组成一个新的数,然后再一次做同样
阿里面试题:摩托车最多跑多远
最近看到一个阿里的面试题,题目: 有16辆摩托车,每辆摩托车的油可以跑100KM,那么要送一个东西,最远可以送到多少KM以外? 说实话,第一眼看到这个题目的反应,就是不知道什么意思,难道是要摩托车拖着
动态规划-最长递增子序列
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,
哈希解_两数之和
今天又是苦逼搬砖的一天 正题 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只
二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 在 JS 中,可以直接使用
JS 二路归并排序(分治排序)
二路归并排序定义和原理: 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题
平方数之和
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。 解析: 求的正整数的平方数之和等于某个树,那么 a 和 b 必然 < c,最先想到的通用求解方法即遍历小
双指针龟兔赛跑判断链表是否成环
给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 如果链表中存在环,则返回 true 。 否则,返回 false 。 方法一:数组缓
哈希表,位运算:找出只出现一次的数字
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。 请你找出并返回那个只出现了一次的元素。 看到这样的需求和题目最先想到的方法就是哈希表的方法,将数组遍历,使用哈
JS找出单向链表中倒数第 k 个节点
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 示例: 分析: 找出单向链表中倒数某个节点,首先想到最简单也是最暴力的解法:生成一个数组,将链表遍历的同时,存放到数组中,将数组反转,
JS 从尾到头打印链表
*** JS 从尾到头打印链表 示例 1: 分析: 实际上是求链表的反转,以数组的形式输出。 方法一:通过不停调换链表 next 指针,直至链表结束,再以数组的形式输出。 详情可见前面文章 JS
JS 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII,
反转数组
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 这是一个比较简单
搜索插入位置
一、 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 分析: JS 获取目标在数组中的索引值直接使用数组 indexOf 方法
JS 计算二叉树深度
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7] 返
JS平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。 一棵高度平衡二叉树定义为: 一棵二叉树是平衡二叉树,当且仅当其所有子树也都是平衡二叉树,因此可以使用递归的方式判断二叉树是不是平衡二叉树 递归的顺序可以
JS 找出数据流中第K大元素
设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。 请实现 KthLargest 类: KthLargest(int k, int[] nu
下一页