![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
剑指offer -- JavaScript(JS)前端算法
文章平均质量分 59
剑指offer -- JavaScript(JS)前端算法
wincheshe
秋天,黄叶坠地,凉风有信。
展开
-
「DFS算法」实现一个数组,或者字符串的 “全排列” 算法
一、全排列给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。/* DFS:深度遍历求解*/var permute = function(nums) { let res = [] const dfs = (path)=>{ // 出口条件 if(path.length == nums.length){ //将结果放进数组里 res.push([...path])原创 2022-04-15 11:42:52 · 423 阅读 · 0 评论 -
「排序算法」十大经典排序算法
文章目录十大经典排序算法一、冒泡排序二、选择排序三、插入排序四、希尔排序五、归并排序六、快速排序七、堆排序八、计数排序九、桶排序十、基数排序引用网站:菜鸟教程十大经典排序十大经典排序算法排序算法图片总结(图片来源于网络)一、冒泡排序冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢原创 2022-04-12 10:56:02 · 5493 阅读 · 2 评论 -
「面试高频」算法——实现一个最长回文子串
!!!回文串是中心对称的题目:最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”提示:1 <= s.length <= 1000s 仅由数字和英文字母组成1、dp二维数组+状态保存解题思路状态dp[i][j]: 以下标i开头j结尾的字串是否是回文串(boolean)状态转移方程:dp[i][j] = s[i]原创 2022-04-07 15:28:03 · 264 阅读 · 0 评论 -
力扣 --- CodeTop --- 2022前端高频面试算法题归纳详解,附带面试中出现频率,冲刺面试算法(JS实现)(持续更新中、)
力扣 — 前端面试高频算法题总结(codeTop)附带题目链接,题目详解,面试中出现的频率,以及最近出现的时间,前端高频算法归纳,冲刺前端算法!使用JavaScript(JS)实现,持续更新中····原创 2022-03-07 10:16:26 · 4762 阅读 · 0 评论 -
JavaScript(JS)前序遍历,中序遍历,后序遍历,层序遍历,图文详解两种(递归与迭代)实现的方式
1、二叉树的前序遍历前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。若二叉树为空则结束返回,否则:(1)访问根结点。(2)前序遍历左子树。(3)前序遍历右子树 。需要注意的是:遍历左右子树时仍然采用前序遍历方法。如图前序遍历结果:ABCDEFGHI已知后序遍历和中序遍历,就能确定前序遍历。// 非递归实现,迭代实现var preorderTraversal = function(root) {原创 2022-03-02 11:23:02 · 6896 阅读 · 0 评论 -
javascript(JS / TS)攻克数据结构 --- 二周计划 JS/TS实现 (已完结)
力扣 – 数据结构二周计划第一天 – 数组1、 存在重复元素/* 解题思路:创建一个对象,用来存储是否有重复元素,若有重复元素则直接返回true,否则返回false*/function containsDuplicate(nums: number[]): boolean { let hash:object = {} for(let i =0;i<nums.length;i++){ if(!hash[nums[i]]){ hash[原创 2022-02-24 13:41:09 · 522 阅读 · 0 评论 -
JavaScript (JS)常见数据结构与算法的封装
JavaScript (JS)常见数据结构封装,与排序算法,递归排序,背包问题,动态规划的算法题原创 2022-02-18 00:27:51 · 421 阅读 · 0 评论 -
JS中数组去重的七大方法
一. 利用排序 后再对数组是否有重复来去重let arr = [1,2,2,2,3,33,44,4,44,22] console.log(arr.sort((a,b)=>a-b)); let a = arr.sort((a,b)=>a-b) function clearRepeat(arr){ let result = [arr[0]] for (let i =1 ;i<arr.length;i++){ arr[i] !原创 2022-02-16 20:23:46 · 3301 阅读 · 0 评论 -
剑指offer30天 使用JavaScript(JS)实现(含答案解析及题目)
1、栈与队列(简单)用两个栈实现队列var CQueue = function() { this.res = []};/** * @param {number} value * @return {void} */CQueue.prototype.appendTail = function(value) { this.res.push(value)};/** * @return {number} */CQueue.prototype.deleteHead =原创 2022-02-16 20:21:00 · 738 阅读 · 0 评论 -
BFS广度优先搜索 (JS)
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印 // BFS // 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 var levelOrder = function(root) { if(root == null) return [] var queue = [] queue.push(root) var res = [] // 当队列还有元素时就继续遍历 // 先将根元素放入遍历 while(原创 2022-02-16 20:22:58 · 393 阅读 · 0 评论 -
JS 无重复字符 算法题
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。var lengthOfLongestSubstring = function(s) { // 将设s = 'dydf' var str ='' var res = [] for (let i of s ){ // 查找有无重复的无重复加到str中 var index = str.indexOf(i) if(index < 0){原创 2022-02-16 20:24:23 · 503 阅读 · 0 评论