- 博客(29)
- 收藏
- 关注
原创 二维数据/对象的sort排序
1.arr=[[1,2],[4,5],[0,0]]根据[x,y] x+y值从小到大排序。}根据obj的value值进行排序。
2024-08-24 13:42:31
69
原创 【js小题】用setTimeout实现SetInterval、手写compose
2.手写一个compose函数,返回一个函数,能够对传入的不定量个函数进行链式调用。1.用setTimeout实现SetInterval。当你需要停止这个循环定时器时。
2024-08-21 14:08:10
240
原创 【js小题】最大字典序排列
例如:N = 5, {1 2 3 4 5},k = 6,在6次交换后,能够得到的字典序最大的排列为{5 3 1 2 4}。给出一个1至N的排列,允许你做不超过K次操作,每次操作可以将相邻的两个数交换,问能够得到的字典序最大的排列是什么?
2024-08-03 11:56:56
263
原创 【js】this指向问题
如果一个函数调用是直接调用,比如fn()这样,没有对象.fn(),就说它是默认绑定的,通常默认绑定时,函数中的this指向全局对象(window);但如果getData也是个箭头函数,那么getData函数中使用this的指向 与 外层作用域相同,也是与全局作用域中的this一致,window。箭头函数没有this,也就是不绑定this,如果在箭头函数中使用this,则是根据外层作用域来决定this。通过某个对象进行调用的。this并不会直接出现在对象或类中,只会出现在对象/类的函数中。
2024-07-05 15:38:15
724
原创 Promise、setTimeout题目(V8引擎下)
1.要看定义的时候定义的是值还是函数值会在定义的时候就赋值,执行new Promise函数,只有在执行的时候才会调用{}中的内容//定义promise1为Promise的实例对象})//定义fn为一个函数,在函数里新建了一个Promise的实例对象});2.Promise打印出来的内容是Promise {: resolve中的值}(如果是空括号,值为undefined)Promise {: reject中的值}
2024-04-27 02:24:34
1535
原创 js一些常见的代码题
发现写多了手写+力扣,一些简单的题反而用很多数组操作使得性能不好,简单的场景题也要多练练。原地可以用split(),用split的时候别用for循环,len的值会有问题。2.[‘a’, ‘a’, ‘b’]数组中判断重复最多的key,及次数。1.实现一个过滤函数,该函数2个输入值,支持传入2个数组。3.将数组中type的相同的对象划分到一个数组。执行时会从第一个数组内过滤掉第二个数组内的值。5.原地移除数组中值等于val的数。4.将下面代码根据type归类。
2024-04-25 19:15:34
168
原创 Openpose 源码梳理
我们的input_y和input_x=368,经过三次下采样也就是2^3=8,得到的特征图大小为46*46(368/8=46),即grid_x =grid_y=46。所以这里的np.array(ann[‘keypoints’]).reshape(17,3),中的17 表示标注中提供的17个关键点,3表示关键点对应的x,y,k。在ann标注中,关键点(x,y,k)除了有x,y的坐标值以外还有一个k,k属于0,1,2中的一个。基于x,y生成高斯图(每次要基于之前的高斯图,因为重叠的部分要叠加)
2023-12-20 17:35:24
1768
2
原创 【react】手写常用hooks
useEffect解决函数式组件中,绑定事件、操作dom、定时器等一系列副作用。第一次渲染的时候,遍历组件,将各个hooks通过索引号index存储。再次渲染的时候,再次遍历,直接从索引号index里拿出既可。这也是为什么hooks不能写在if或循环语句中的原因。hooks在内存中是用链表进行存储的。和useState非常相似。和usememo一样。
2023-06-20 20:12:21
166
原创 对于http2.0解决了http1.x队首阻塞问题的理解
我理解的:客户端传给服务器多个流的多个帧,在服务器端可以根据它们帧首部的流标识符重新组装,将帧组装回整个的流,那为什么在传输数据流1(data3、data5还在传)还没有传完,他就可以返回数据流1,不应该等待所有数据流都接到之后再传回去吗?队首阻塞指的是:当一个响应完全返回后,才能返回另一个响应(串行发送请求/响应),所以,一旦前一个请求阻塞了,后面的请求就不会响应了。http2.0中,在一个tcp连接中可以发送多个数据流(一个数据流包括多个帧构成,而且帧是乱序的)
2023-06-19 22:49:26
243
原创 用javaScript实现并发控制,控制请求并发数
iteratorFn(函数类型):表示迭代函数,用于实现对每个任务项进行处理,该函数会返回一个 Promise 对象或异步函数。控制请求并发数:假设有 6 个待办任务要执行,而我们希望限制同时执行的任务个数,即最多只有 2 个任务能同时执行。并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。为保证事务并发执行的正确,必须要有一定的调度手段以保障事务并发执行中一事务执行时不受其他事务的影响。poolLimit(数字类型):表示限制的并发数;
2023-06-18 08:30:15
1265
原创 手撕系列,常考的手写代码
全resolve才返回resolve,返回一个数组存全部Promise的结果,有一个reject即返回reject。第一个返回的结果 不管resolve还是reject。实例对象 instanceof 构造函数。new(obj)得到一个obj的实例对象。8.手写Promise.race。9.手写Promise.all。1.手写instanceof。7.手写deepCopy。6.手写getType。
2023-06-15 20:33:51
123
原创 this的指向问题:函数中的this和箭头函数中的this
虽然 fn 函数在 foo 对象中作为方法被引用,但是在赋值给 fn1 之后,fn1 的执行任然是在 window 的全局环境中。最后一个,在进行 var fn = o1.fn 赋值之后,是“裸奔”调用,因此这里的 this 指向 window,答案当然时undefined。因为这个时候 this 指向的时最后调用它的对象,在 foo.fn() 语句中 this 指向 foo 对象。原因就是我们刚刚总结的,this 指向最后调用它的对象,指向的是brother。
2023-06-13 12:04:55
59
原创 【上】二叉树
力扣上的定义:用类定义:2.二叉树的递归遍历144. 二叉树的前序遍历145. 二叉树的后序遍历94. 二叉树的中序遍历3.二叉树的非递归遍历144. 二叉树的前序遍历前序遍历是中左右,每次先处理的是中间节点,那么先将根节点放入栈中,然后将右孩子加入栈,再加入左孩子。为什么要先加入 右孩子,再加入左孩子呢? 因为这样出栈的时候才是中左右的顺序。动画如下:94. 二叉树的中序遍历分析一下为什么刚刚写的前序遍历的代码,不能和中序遍历通用呢,因为前序遍历的顺序是中左右,先访问的元素是中间节点,
2023-06-04 17:44:36
62
原创 【哈希表下】哈希表
没思路,看了别人的过程之后明白了,和之前的两数相加一样,这里的四个数组两个放在一起看,把两个数组中所有的两个数都加起来,存在map里面,然后和两数相加那道题的做法一样就行。想这么写去掉重复的三元组,但是没通过,经过查阅资料才知道,原来js不能用includes判断二维数字中是否含某个一维数组。因为只有小写字母构成,所以可以开一个数组,数组要比map的性能好一些。所以只能手动判断一下result里是否包含重复三元组了。
2023-06-01 16:11:36
29
原创 【数组四】螺旋矩阵
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。并且它不会改变原来的数组。给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。一开始不知道js中怎么创建二维数组hhh。直接用上一个代码改的。
2023-05-28 17:56:22
108
原创 【数组三】滑动窗口
不过事实证明,我想错了,不一定长度最小包含最大(相对来说更大的值),对于这组样例 213,[12,28,83,4,25,26,25,2,25,25,25,12] 就无法通过,我的算法得到的是9位,从12一直到25,加起来有230。我一开始想的是,找出数组中最大的值(我认为令长度最小肯定包含最大的那个数),然后双指针,最大的值左右各放一个指针,哪边的大就往哪边走(长度最小包含相对来说更大的值),直到走到头,如果走到头还不够就再走另一边,直到大于target,停止。采摘的水果应当符合篮子中的水果类型。
2023-05-26 19:44:09
62
1
原创 【数组二】移除元素
后来才想起来,js中的字符串不能更改(通过数组),字符串的那些方法都是通过,新建一个字符串,将新的字符串替换给老字符串,实际上老字符串并没有被修改。给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。提交了好几次555,它会有字符串已经为空还要删除的情况,所以slow不能单纯一直减(不能为负数,最多减到0),我是用的栈去保存的字符,感觉有点麻烦,看了一下别人的方法。nums 的其余元素与 nums 的大小不重要。元素的顺序可以改变。
2023-05-25 22:40:18
42
1
原创 【数组一】二分查找
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
2023-05-25 22:02:24
85
1
原创 js几道小题
(3)传过来的一组promise实例中,谁最先改变状态完成,返回的promise对象中就包含谁的结果。super 作为对象时,在普通方法中,指向父类的 prototype 原型,因此不在原型 prototype 上的属性和方法不可以通过 super 调用。重写localStorage的api,在setItem的时候设置expire,在getItem的时候,先判断expire与Date.now()的大小。如果存储时有设置过期时间,且在获取的时候发现已经小于当前时间戳,则执行删除操作,并返回空值;
2023-05-25 17:09:21
78
1
原创 吴恩达机器学习ex3-neural network python版
对于这个任务,我们有10个可能的类,并且由于逻辑回归只能一次在2个类之间进行分类,我们需要多类分类的策略。在本练习中,我们的任务是实现一对一全分类方法,其中具有k个不同类的标签就有k个分类器,每个分类器在“类别 i”和“不是 i”之间决定。我们将把分类器训练包含在一个函数中,该函数计算10个分类器中的每个分类器的最终权重,并将权重返回为k X(n + 1)数组,其中n是参数数量。对于这一步,我们将计算每个类的类概率,对于每个训练样本(使用当然的向量化代码),并将输出类标签为具有最高概率的类。
2022-09-27 17:13:39
204
原创 吴恩达机器学习ex2-logistic regression python版
如果你对正则化有点眼生,或者喜欢这一节的方程的背景,请参考在"exercises"文件夹中的"ex2.pdf"。简而言之,正则化是成本函数中的一个术语,它使算法更倾向于“更简单”的模型(在这种情况下,模型将更小的系数)。看起来在两类间,有一个清晰的决策边界。看起来不错,接下来,我们需要一个函数来计算我们的训练数据、标签和一些参数thata的梯度。现在,让我们尝试调用新的默认为0的theta的正则化函数,以确保计算工作正常。最后,我们可以使用第1部分中的预测函数来查看我们的方案在训练数据上的准确度。
2022-09-26 21:00:12
634
原创 吴恩达机器学习ex1-linear regression python版
假设我们的训练集特征矩阵为 X(包含了𝑥0=1)并且我们的训练集结果为向量 y,则利用正规方程解出向量 𝜃=(𝑋𝑇𝑋)−1𝑋𝑇𝑦。正规方程:不需要选择学习率α,一次计算得出,需要计算(𝑋𝑇𝑋)−1,如果特征数量n较大则运算代价大,因为矩阵逆的计算时间复杂度为𝑂(𝑛3),通常来说当𝑛小于10000 时还是可以接受的,只适用于线性模型,不适合逻辑回归模型等其他模型。练习1还包括一个房屋价格数据集,其中有2个变量(房子的大小,卧室的数量)和目标(房子的价格)。我们使用我们已经应用的技术来分析数据集。
2022-09-25 20:15:09
467
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人