CodingWithAlice

我的一方小天地,如果对你有帮助,那真的太好了

自定义运算符优先级计算

自定义运算符优先级计算 #>$ 问题:给定一个由数字、# 和 $ 组成的字符串,其中 # 的优先级高于 $ 运算规则: a#b:结果为 a * 4 + b * 3 + 2 a$b:结果为 a * 2 + b + 3 最终输出整个表达式的计算结果 1、split + reduce 算法 function numbe...

约瑟夫问题变种 - 标准解法+批量删除解法

约瑟夫问题变种 - 标准解法+批量删除解法 问题:100个人为成圈,从 1 - 100 编码,接收输入 M,从第一个人开始报数,报到 M 的人自动退出这个圈,下个人接着从1报数,直到剩余人数少于M,输出剩余人的编码 自己写的解法 - 比标准解法性能高 核心逻辑:每次都直接删除 M 的倍数 + 记录最后删除的 M 的下一项,移动到数组最前面,形成环状报数 function ci...

最大化最小间隔

最大化最小间隔 问题:给定三个输入: 可种植的树的数量(n):需要种植的树木总数 坐标点数组(positions):每个元素表示一个适合种树的位置坐标(一维或二维) 必须种植的树木数量(k):k ≤ n,且 k ≤ positions.length 从 positions 中选择 k 个点种植树木,使得所有相邻树木之间的 最小间距 尽可能大。 最终返回这个 最大的最小间...

方法的泛化/方法的借用

方法的泛化/方法的借用 将方法从对象中“解绑”出来,使其可以作为一个普通函数使用 实现 Function.prototype.uncurry = function () { const self = this; return (...arg) => { // 方式1 const obj = [].shift.call(arg...

二叉树:前中后序、层序遍历-递归/非递归版本、层序遍历、路径和

二叉树:前中后序、层序遍历-递归/非递归版本、层序遍历、路径和 class TreeNode { // 创建节点 constructor(value, left, right) { this.val = value || 0; this.left = left || null; this.right = right || null; ...

js执行优先级 + 测试题

js执行优先级 + 测试题 参考链接:mdn 优先级操作符 执行优先级由高到低: 19 优先级 分组:(…) 18 优先级 成员访问 a.b 需计算的成员访问 a[b] new 带参数列表 new foo() 函数调用 fun(a) 可选链 a?.b 17 优先级 n...

浏览器前端性能优化RAIL

浏览器前端性能优化RAIL 总结 和 05-3 白屏优化? 一起记忆:白屏优化是从技术层面来指导优化方式;RAIL 是从用户体验来衡量优化方式 定义:RAIL 是一种用于衡量和优化 网页性能 的模型,是 Google 提出的一种以用户为中心的性能度量方法 RAIL = Response响应 + Animation动画 + Idle空闲 + ...

p-limit 使用+源码 、100个请求并发请求、分时操作

p-limit 使用+源码 、100个请求并发请求、分时操作 记录一个有趣的面试题目(来源pingpong) 题目:100个请求,互相独立,同时发起请求 闪光点记录:Promise.race 的源码,闭包将index和请求关联 ,面试官推荐学习下 p-limit 1、p-limit 使用 功能:用于 限制并发异步操作数量 的轻量级 JS 库 import pLimit, { li...

Promise 的异步任务并发函数

Promise 的异步任务并发函数 Promise.race 传入的数组可以动态变化么? // 解答标题:可以动态数组,即使第一次执行 Promise.race([A,B,C]) 时每个 promise 都被触发了,Promise.race([B,C,D]) 还是可以返回第一个 非待定状态的 promise Promise 的异步任务并发函数 4个:Promise.all Promi...

NestJS 守卫-校验权限

NestJS 守卫-校验权限 NestJS 中的组件有:中间件、守卫、拦截器、管道、拦截器(还有个过滤器 权限功能以守卫组件承载 【Step1:创建 auth.guard.ts】 @Injectable() export class AuthGuard implements CanActivate { canActivate(context) { const ...