- 博客(52)
- 资源 (6)
- 收藏
- 关注
原创 49. 字母异位词分组
/** 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。* 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]* 思路:* 怎么把异位词分组,怎样的词算异位词?* 1、对单词的字符按字母排序,eat=>aet,排序后相
2022-05-30 22:48:19
148
原创 35.搜索插入位置
/** 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。* *//** * @param {number[]} nums * @param {number} target * @return {number} */var searchInsert = function(nums, target) { if(!nums||!nums.length){ return 0; } var
2022-05-29 13:23:58
124
原创 27、移除元素
/*给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。因为需要原地操作,没有辅助空间,考虑双指针l,r,区分val和非val循环遍历,当左指针为val,右指针不为val时,交换l,r的值,当l==r,退出循环,如果当前l的值为val,返回l前面的个数即l,否则返回l前面的个数加当前l对应的元
2022-05-25 22:08:05
151
原创 22、生成括号
/** 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。* 有效的括号:* 输入:n = 3* 输出:["((()))","(()())","(())()","()(())","()()()"]* 输入:n = 1* 输出:["()"]** * 从模拟的过程:* 首先串为空,既可以添加(、也可以添加)* 什么时候迭代添加结束,即str的长度为2n,或者无效时;* 什么时候无效? 即左括号的个数比右括号少,其他情况都可以继续迭代* 继续迭
2022-05-23 22:48:31
209
1
原创 21.合并单链表
/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } *//** * @param {ListNode} list1 * @param {ListNode} list2 * @return {Lis
2022-05-22 13:14:04
221
原创 20.括号匹配
/*给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true思路: 需要配对,遍历数组的同时,将左括号存储在栈内, 每次用当前的右括号和栈顶元素匹配,匹配成功,指针后移,失败结束; 最后栈不空失败,栈空成功*/const type={ left_s
2022-05-18 22:26:05
85
原创 1.两数相加
//求数组[15,11,2,7]中两数之和为9的索引数组,即返回[2,3]//哈希法var two_number_sum = function(arr,target){ var map=new Map(); var result = []; for(let i in arr){ map.set(arr[i],i); } for(let i in arr){ var diff=target-arr[i]; if(ma
2022-05-17 22:31:50
136
原创 2.两数相加
/*给定两个链表,表示非负数,每位数字逆序排列,每个节点只能存储一位数字,请将两数相加,返回一个表示和的链表function two_num_sum_linkList_store(l1,l2):ListNode在js中怎么表示ListNode在js中怎么构造链表,js构造函数js中使用parseInt()得到整除的结果*/function ListNode(val,next){ this.val=val===undefined?0:val; this.next = (next
2022-05-17 22:30:21
123
原创 webassembly调研
为什么WebAssembly不是JavaScript的终结者,而是它的“助推器”?https://mp.weixin.qq.com/s/unBJycuMZZGKbJ1LT9vS0w什么是webassembly可移植、体积小、加载快的全新web格式(二进制),由主流的浏览器厂商组成的w3c社区置顶的新的规范发展历史1995 javascript诞生,解释性语言,实时编译,执行速度受限2008 浏览器性能解决方案:JIT(即时编译),展开论述JIT的原理,解释JIT对于弱类型失效随着js的性能
2022-03-29 19:49:45
827
原创 跨域通信的几种方法
跨域通信 概念 直接跨域会导致什么问题? 请求被拦截,提示没有允许跨域 跨域方式 CORS跨域 跨域资源共享 服务端设置响应头部:Access-Control-Allow-Origin,允许请求源 jsonp跨域 jsonp的工作原理,如何执行 使用方式 请求携带回调函数 响应方拿到回调函数,并传入参数,并返回 postMessage跨域 使用场景:同一页面的父子窗口 使用方式 发送消息:父页面通过子页面的窗口代理向子页面发
2022-02-15 19:18:29
1365
原创 快速排序-剪枝
var quickSort = function (low,high,target,arr){ if(low>=high){ return; } var positon = DC_sort(low,high,arr); if(target===positon){ return ; } if(positon>target){ // 快排剪枝,如果当前位置>target,缩小排序范围(low,ta
2022-01-18 19:37:45
384
原创 算法图解-读书笔记
算法简介二分查找:基于有序数组开展大O表示法:时间复杂度空间复杂度,主要用于衡量随着n的变化,时间复杂度和空间复杂度的增速选择排序数组、链表:两者在数据存取方面的时间复杂度的区别,选择排序:原理:每次遍历序列获取最大、或最小的元素,;循环遍历,所有元素递归递归:自己调用自己的函数,递归和循环实现原理相同,只是表现形式不同,递归的形式可读性更好,但占用的调用栈内存更大,循环的内存消耗更小递归包含:基线条件、循环条件快速排序例如前面提到的二分查找,一些操作是基于有序序列的,所以需要对数据进
2022-01-12 22:42:28
126
原创 面向对象编程
封装创建一个类:创建一个函数,再将函数复制给一个变量1.在函数内部为this变量添加属性或方法,2.为原型添加属性或方法 通过给原型对象的属性一一赋值 将一个对象赋值给原型3.通过this和prototype的属性和方法的区别:this指向的属性和方法都是实例的,在每次实例化时会重新创建;基于prototype的属性和方法是属于类的不会再新建4.constructor指向的是拥有整个原型对象的函数或对象// todo 创建类// var Book = function (i.
2022-01-05 20:33:14
295
原创 js类型判断
1.判断值类型// typeofconsole.log(typeof 1); //console.log(typeof '1'); //console.log(typeof true); //console.log(typeof {}); // objectconsole.log(typeof []); // objectconsole.log(typeof function () {}); // functionconsole.log(typeof nul
2022-01-05 19:08:09
282
原创 防抖&节流
1.概念防抖:给定的时间期限内,仅触发一次事件;如果在计时周期内,再次触发,重新开始计时; 缺点:如果不停止触发,将不会执行对应的处理器函数节流:函数执行后,在给定的时间周期内不再可用;时间周期结束,恢复使用2.使用场景 1. 滚动鼠标,实现翻页:监听鼠标事件,一次滚动多次触发, 目标:减少触发频次 => 一次触发后,执行时间间隔后再执行 2. 页面resize,移动鼠标,多次被事件处理器捕获 目标:根据最终的一次变化情况改变页面大小 3. 搜索框实时.
2022-01-04 20:40:29
183
原创 React-hooks入门
1、useState:改变变量的值,代替this.state改变变量的值,代替this.state2、useEffect:代替生命周期初始化、更新状态的周期、组件销毁的钩子执行的时机可控: []:执行一次 [variable]:根据状态更新 null: 组件中只要有变量状态更新就会执行3、useContext: 父组件向子组件传值(子组件如何向父组件传值)通过CreateContext创建上下文,并在ContextProvide元素中提供初值,在子组件中通过useC.
2021-12-28 20:23:19
414
原创 前端-手写代码系列-promise
1.promise解决的问题为了达到同步逻辑的效果,避免回调地狱,提高代码的可读性2.什么场景会用到promise异步获取数据,并对返回的数据进行处理,在进行下一步的逻辑操作3.需要promise满足的条件promise的返回状态,两种情况:成功或失败,需要分别对两种状态进行处理promise返回的失败状态,可由then处理,也可由catch处理,需要兼容两种方式由于异步获取数据,涉及代码的异步执行(怎样保存上下文?)4.实现思路:function promiseCas.
2021-12-26 15:11:55
416
原创 http状态码
1xx请求可继续100:请求继续101:要求升级协议2xx请求成功200:请求成功204:请求返回无响应头3xx重定向304:no-cache,与服务器数据资源对比,无变化缓存处理:客户端->缓存->对资源副本进行新鲜度检测,如果不新鲜->与服务器端进行再验证->验证通过返回资源副本1.新鲜度检测:Cache-Control/EXPIRES EXPIRES:通过指定具体的日期,缺点:客户端时间和服务器时间不同步 Cache-Control:通过指定.
2021-11-25 23:20:24
1226
原创 计算机网络
TCP\UDP的区别TCP:传输控制协议:拥有顺序控制、拥塞控制、流量控制、重发控制适用于对安全性有要求的场景UDP:用户数据报协议:没有顺序控制、重发机制,不能保证安全性和可靠性;缺少相关的控制字段,和建立连接的机制,所以传输速度更快,适用于即时通信、广播这类丢包也不会产生太大影响的场景。TCP的三次握手HTTPS/HTTPHTTP的缺点数据明文传输无法保证数据报文的完整性,有篡改的风险不验证通信双方的身份加密对称加密 :使用相同的密钥加密解密,在通信之前共享密钥,密钥
2021-11-21 23:30:41
1322
原创 http2.0新特性
http2.0有哪些新特性http1.1存在的不足:只能发送文本内容,请求响应串行执行 ,传输队列首部阻塞,并行通信需要建立多个tcp连接,http无状态,导致每次头部需要携带大量信息,客户端主动轮询针对以上不足,http2.0提出了新的应对策略1.只能发送文本内容,采用二进制帧传输数据,兼容了多种不同的数据类型2.请求响应串行执行,传输队列首部阻塞,并行通信需要建立多个tcp连接,采用优先级字段调整响应的优先级,通过二进制帧乱序传输消息,多个消息在同一个连接通道传送,最
2021-11-21 21:08:42
1731
原创 异步promise
promise概念:一个异步对象,类似于angular中的Observer()优点:替换异步表达中的回调函数,使用链式编程,提高代码的可读性。异步操作的返回状态:fulfilled,rejected基于不同的状态对应不同的后置处理:resolve(),reject()如果后续还有操作,使用.then()继续处理延申,常用的几个函数: Promise.all():异步操作都执行成功后,…… Promise.race():一个异步成功即可,…… Promise.allSettle
2021-11-16 23:22:33
211
原创 剑指offer-9.使用两个栈模拟队列操作
算法-习题```javascriptvar CQueue = function() { this.A=[]; this.B=[];};/** * @param {number} value * @return {void} */CQueue.prototype.appendTail = function(value) { // if(!this.B.length){ // while(this.A.length){ //
2021-11-14 18:12:13
551
原创 面试题42:连续子数组的最大和
数组的最大子序列{1,-2,3,10,-4,7,2,-5}思路1:枚举所有的子数组并求出他们的和,取最大值;n(n+1)/2=O(n^2)思路2:从头到尾累加,初始和为0代码实现 public int FindGreatestSumOfSubArray(int[] array) { boolean isNullArray=false; int gr...
2019-07-17 17:19:22
162
原创 Crowd Counting----ADCrowdNet(CVPR-2019)
ADCrowdNet: An Attention-injective Deformable Convolutional Network for Crowd Understanding(注入注意力的可形变卷积,可形变的卷积加入了方向参数,指导卷积核的在特征图上的延伸)提出一个两阶段的串联网络AMG和DME,解决高密度人群中准确率下降的问题关于AMG网络(注意力图部分)AMG网络将...
2019-04-17 09:50:52
1130
2
原创 计算机视觉入门教程转让
算法到实战,如何零基础入门计算机视觉领域 算法到实战,如何零基础入门计算机视觉领域教程转让,有意愿联系QQ:1204783631
2018-06-22 16:12:37
379
转载 DBSCAN密度聚类算法
概率统计基础 输入:样本集D=(x1,x2,…,xm),邻域参数(ϵ,MinPts), 样本距离度量方式 输出: 簇划分C. 1)初始化核心对象集合Ω=∅ , 初始化聚类簇数k=0,初始化未访问样本集合Γ = D, 簇划分C = ∅ 2) 对于j=1,2,…m, 按下面的步骤找出所有的核心对象: a) 通过距离度量方式,找到样本xj的ϵ-邻域...
2018-06-19 20:54:30
654
原创 聚类了解
聚类与分类的区别: 分类是已知各类别的属性值,将事物通过特征的筛选归并到已知的类别。聚类通过相似性的度量方式,将距离相近的归并到同一类,距离较大的归并到不同类。相似性度量:欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离、马氏距离、余弦相似度、汉明距离、杰卡德距离& 杰卡德相似系数、皮尔逊相关系数、相关系数& 相关距离、信息熵层次聚类:由下而上的合并cluster...
2018-06-10 19:51:17
279
转载 Netscope:神经网络结构在线可视化工具
地址:http://ethereon.github.io/netscope/#/editor使用方法:直接把prototxt文件放入其中,shift+enter就会绘制出结果。
2018-05-06 17:37:33
579
原创 PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization论文阅读
相关论文:Kendall A, Grimes M, Cipolla R. Convolutional networks for real-time 6-DOF camera relocalization[J]. Education for Information, 2015, 31:125-141.论文地址:https://arxiv.org/pdf/1505.07427.pdfJ. Shotto...
2018-05-03 20:14:39
1616
转载 caffe ---make all编辑出错
make all出现错误:In file included from src/caffe/util/im2col.cpp:4:0:./include/caffe/util/math_functions.hpp:7:26: fatal error: glog/logging.h: 没有那个文件或目录 #include "glog/logging.h"src/caffe/util/signal_h...
2018-04-14 15:15:44
727
原创 乘积量化(PQ)
乘积量化是怎样应用在图像检索中的:”’ 经过量化学习后,对于给定的查询样本,通过查表的方式可以计算出查询样本和库中样本的非对称距离 ”’乘积量化简述:向量量化的方法中比较典型的代表是乘积量化(PQ, Product Quantization)方法,它将特征空间分解为多个低维子空间的笛卡尔乘积,然后单独地对每一个子空间进行量化。在训练阶段,每一个子空间经过聚类后得到kk个类心(即量化器),所有这些
2017-12-12 16:16:48
2498
原创 faster-rcnn学习
faster-rcnn学习 1.faster-rcnn原理及相应概念解释 https://www.cnblogs.com/dudumiaomiao/p/6560841.html 2faster-rcnn之RPN网络的结构解析h https://www.2cto.com/kf/201612/579694.html3卷积的工作方式 https://www.zhihu.com/question/
2017-12-10 10:40:44
197
原创 tensorflow实现线性方程的参数调整
import tensorflow as tfimport numpy as np#create datax_data=np.random.rand(100).astype(np.float32)y_data=x_data*0.1+0.3 #目标结果#create tensorflow structure startWeights=tf.Variable(tf.random_uniform
2017-08-23 14:39:34
385
原创 MNIST机器学习入门
http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.htmlimport tensorflow.examples.tutorials.mnist.input_data as input_datamnist = input_data.read_data_sets("MNIST_data/", one_
2017-07-24 12:32:30
289
转载 TensorFlow:NameError: name ‘input_data’ is not defined
xueli1991的博客在TensorFlow中文文档的教程中, 关于MNIST机器学习入门 一节,开头 down load mnist数据集的代码 import tensorflow.examples.tutorials.mnist.input_data mnist = input_data.read_data_sets(“MNIST_data/”, one_hot=True) 直接复制运行会
2017-07-21 16:22:46
937
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人