文章 2022-02-17 来自:开发者社区

剑指Offer——最小的K个数(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于考查排序的问题我们只需要将输入的整数数组按照升序进行排列然后返回前k个数字即可,这里采用JS自带的sort方法截取前k个数字采用slice方法解题代码var getLeastNumbers = function(arr, k) { arr.sort((num1,num2) => num1 - nu...

剑指Offer——最小的K个数(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——数据流中的中位数(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于考查二分查找本题如果直接采用JS中自带的排序肯定是要超时的,要不然LeetCode也不会将这道题归为困难二分查找的思路定义两个指针,一个指针指向的是数组元素的第一个下标,另一个指针指向的是数组元素的最后一个元素的下标。中位数下标指的是通过四舍五入的方法,左边指针的下标 + 右边指针的下标 / 2然后进行四舍五入....

剑指Offer——数据流中的中位数(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——包含min函数的栈(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于栈的相关问题本题的核心思路是采用模拟栈的方法模拟栈是一种很重要的思路,主要是定义两个数组,一个数组和真实的栈的pushpop方法一致,另一个数组则是用来存储最小值的栈,只有push的元素比最小值栈小或相等的时候,才将该元素push进最小值栈。top方法只需将真实栈的栈顶元素返回即可在进行pop方法的时候,真实栈....

剑指Offer——包含min函数的栈(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——二叉树中和为某一值的路径(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于二叉树的深度优先遍历首先我们要了解DFS的遍历过程当root节点走到null的时候,说明该条路径已经遍历完毕当一条路径遍历完毕之后,我们使用浅拷贝的方式将一条路径拷贝进res最终结果数组中然后开始返回,每次返回都要将stack数组的最后一个元素清空,这是本题的核心点,刚开始被这个问题困扰了很久。解题代码var ....

剑指Offer——二叉树中和为某一值的路径(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——不用加减乘除做加法(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于考查位运算的问题位运算从某种程度上来说思路较为难以理解本题考查的就是加法 = 进位 + 非进位解题代码var add = function(a, b) { while (b) { let c = (a&b) << 1; a = a^b; ...

剑指Offer——不用加减乘除做加法(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——对称的二叉树(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于二叉树的问题本题的核心在于通过层次遍历,来将一层的元素的值和这一层元素进行反转之后,相同下标的元素是否相同,只要相同,则说明是对称二叉树,反之则不是对称二叉树。解题代码var isSymmetric = function(root) { if (!root) return true; let f...

剑指Offer——对称的二叉树(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——II.平衡二叉树(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于二叉树考查深度的问题本题的核心在于知道二叉树的深度怎么求:二叉树的深度 = 左子树的深度与右子树的深度中的最大值 + 1,这是核心解题点解题代码var isBalanced = function(root) { let flag = true; dfs(root); return fla...

剑指Offer——II.平衡二叉树(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——从上到下打印二叉树III(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路这道题属于二叉树的层次遍历问题首先定义三个数组数组queue用来存放当前层的所有元素指针数组temp充当临时数组,用来存放当前元素所有指针的左右孩子指针数组test用来存放每一层元素的值当test存储完一层的元素后,就将queue置为空,然后遍历temp将每个元素的左右孩子节点继续放入queue,继续下次循环解题代码va....

剑指Offer——从上到下打印二叉树III(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——构建乘积数组(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路遇到这道题,我首先使用使用双指针,左右遍历遇到第i个元素则停止遍历,然后进行求乘积但是结果超时最终通过对称遍历的方式成功解决问题解题代码一:暴力双指针(超时)var constructArr = function (a) { // 使用左右指针两边遍历的方法 const result = []; ...

剑指Offer——构建乘积数组(JS实现) |刷题打卡
文章 2022-02-17 来自:开发者社区

剑指Offer——连续子数组的最大和(JS实现) |刷题打卡

前言掘金团队号上线,助你 Offer 临门! 点击 查看详情题目描述解题思路本题的思想在于想到动态规划首先定义一个和nums同纬度的数组dp数组的第一个元素和nums的第一个元素的值相同这里的dp[i]的含义是解题关键:代表着当前元素在内的所有前面的子数组的和的最大值从nums的第二个元素开始遍历,如果dp[i-1]>0,dp[i]则等于dp[i-1]+nums[i],反之则等于nums[....

剑指Offer——连续子数组的最大和(JS实现) |刷题打卡

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注