小白的数据结构与算法笔记
文章平均质量分 78
按标签记录刷LeetCode的日常心得
JohnKeatinghhh
埋まる、埋まる
展开
-
记忆化dfs、dp与javascript计算精度的问题
记忆化dfs、dp与javascript计算精度的问题解法动态规划记忆化dfs关于javascript计算精度1. JS没有int型限制,为什么在计算过程中每一次都要严格保证这个上限呢?2. 为什么取模的时候要对加数也取模?一个槽点网易2021校招笔试-前端开发工程师(正式第二批)有这么一道题:来源:牛客网已知摩尔斯电码和字符映射关系如下:A -> 0B -> 1C -> 10D -> 11E -> 100F -> 101G -> 110H原创 2021-08-31 10:07:21 · 474 阅读 · 0 评论 -
二分查找的细节
二分查找的细节二分查找原理很简单,就是在一个已经排好序(或者分段排好序)的数组中用O(logn)的时间复杂度找到目标值,实现如下:function findTarget(nums:number[], target:number): number{ if(nums.length <= 1) return nums[0] === target ? 0 : -1; let left = 0, right = nums.length - 1; // 目标数组的首尾 while(left < r原创 2021-07-17 18:09:52 · 378 阅读 · 0 评论 -
图的深度优先遍历和广度优先遍历
图的深度优先遍历和广度优先遍历深度优先遍历广度优先遍历邻接表的形式表示一个图:const graph = { 0: [1,2], 1: [2], 2: [3,0], 3: [3,0]}深度优先遍历深度优先遍历就是优先遍历完一条完整路径,和树的深度优先遍历基本一样,但是需要用visited来记录遍历过的节点,以避免死循环。// 记录访问过的节点const visited = new Set()const dfs = cur => { console.log(c原创 2021-02-17 11:39:20 · 261 阅读 · 0 评论 -
栈模拟遍历二叉树前、中、后序模板
栈模拟遍历二叉树前、中、后序模板前序遍历中序遍历后序遍历用递归的方法遍历而二叉树,是深度优先搜索的一个基本应用,就像是爬格子之于动态规划,三数之和之于双指针,反转链表之于链表一样。但是用递归栈来模拟,则是一道medium甚至hard的题目,如果要保证在面试中马上需要反复练习。首先看一个模拟递归栈的模板:var traverseWithCallStack(root){ //用来模拟递归栈的数组 const stk = []; //存一下传进来的root let node = root; //原创 2020-11-13 17:48:42 · 404 阅读 · 0 评论 -
【C++刷题笔记】函数指针与仿函数:自定义排序规则
【C++刷题笔记】函数指针与仿函数:自定义排序规则方法一:传函数指针的方式:方法二:传仿函数的方式:自带的less和greaterpriority_queue的情况C++中的sort函数性能十分强大,有时我们需要自定义排序方式,sort的第三个参数接收一个bool类型的函数指针,用来指定排序的规则。方法一:传函数指针的方式:定义一个降序函数template<typename T>bool descend(T & a, T &b) { return a > b;原创 2020-11-06 22:34:49 · 836 阅读 · 0 评论