JS算法-寻找峰值
题目给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。输入: nums = [1,2,3,1] 输出: 2 解释: 3 是峰值元素,你的函数应该返回其索引 2。 题解第一种首先定义了一个常量minv,它表示负无穷,用来表示数组边界情况。然后获取了数组的长度n和左右指针l和r的初始值,l为0,r为n-1,然后进入while循....
JS算法-链表相交
题目你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], skipA = 2, skipB = 3 输出:Intersected at '8' 解释:相交节点的值为 8 (注意,如果两....
JS算法-乘积最大子数组
题目给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。输入: nums = [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 题解我们这道题采用动态规划实现,我们利用一个二维数组dp记录当前位置之前的最大和最小乘积。具体来说,dp[i][0]表示以第i个数结尾的最小乘积,dp[i....
JS算法-反转字符串中的单词
题目给你一个字符串 s ,请你反转字符串中 单词 的顺序输入: s = "the sky is blue" 输出: "blue is sky the" 题解第一种我们这里先定义一个常量 SPACE,表示空格符号,然后在定义两个数组变量,ret 和 word,分别用于保存颠倒单词顺序后的字符串和当前单词的字符数组,在将输入的字符串 s 后面加上一个空格符号,我们为了方便处理最后一个单词,接下来进行....
JS算法-链表排序
题目给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。输入: head = [4,2,1,3] 输出: [1,2,3,4] 题解我们首先在sortList函数中先定义一个虚拟节点dummy,将其next指向头节点head,方便操作链表,在使用getLength函数获取链表长度len,然后使用步长step进行循环排序,每次将链表分成长度为step的两个子链表,然后将这两个子....
JS算法-链表插入排序
题目给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。输入: head = [4,2,1,3] 输出: [1,2,3,4] 题解我们在insertionSortList函数中接收一个头结点head作为输入,在首先定义了三个变量:retHead、retPrev和curr。retHead用于记录已排序链表的头结点,retPrev用于记录已排序链表的前一个节点,c....
JS算法-二叉树的后序遍历
题目给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。输入: root = [1,null,2,3] 输出: [3,2,1] 题解第一种首先我们设定一个结果数组result用来保存后序遍历的结果。如果输入的二叉树为空,直接返回结果数组result,其次,创建两个栈s1和s2。s1用来存储待访问的节点,s2用来存储已访问的节点(即后序遍历的结果)将根节点root压入栈s1中。然后,当....
JS算法-二叉树的前序遍历
题目给你二叉树的根节点 root ,返回它节点值的 前序 **遍历。输入: root = [1,null,2,3] 输出: [1,2,3] 题解第一种我们先初始化数组 res 为空,将当前节点 root 设为根节点。如果左子树 exist,则在左子树中,找到当前节点 root 的 inorder遍历的前驱节点 t。t是左子树中最右边的节点,它满足t.right == null 或 t.right....
JS算法-环形链表2
题目给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。输入: head = [3,2,0,-4], pos = 1 输出: 返回索引为 1 的链表节点 解释: 链表中有一个环,其尾部连接到第二个节点。 题解第一种我们这里采用的是快慢指针的方法,假设有两个指针:一个指针slow每次走一步,另一个指针fast每次走两步。如果链表中存在环,那....
JS算法-环形链表
题目给你一个链表的头节点 head ,判断链表中是否有环。输入: head = [3,2,0,-4], pos = 1 输出: true 解释: 链表中有一个环,其尾部连接到第二个节点。 题解第一种首先,若链表头节点head为空,直接返回false,表示不存在环。接下来定义一个储存节点的WeakSet数据结构,用于存储已经遍历的节点。然后定义一个flag变量赋值为true,作为最终的返回结果。接....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
智能引擎技术
AI Online Serving,阿里巴巴集团搜推广算法与工程技术的大本营,大数据深度学习时代的创新主场。
+关注