自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HXACA的博客

ECNU在读,计算机视觉学习中

  • 博客(39)
  • 收藏
  • 关注

原创 每日一题 2020.11.6

1356. 根据数字二进制下 1 的数目排序给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。如果存在多个数字二进制中 1 的数目相同,则必须将它们按照数值大小升序排列。请你返回排序后的数组。思路:预处理出各数的含1数量,然后进行排序var nums = [1e4+10]int{}//初始化函数 自动调用func init(){ for i:=1;i<=1e4;i++{ nums[i] = nums[i>>1]

2020-11-06 14:33:11 303

原创 每日一题 2020.11.5

127. 单词接龙给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。思路:建图后跑最短路即可var length int

2020-11-06 14:21:38 178 1

原创 每日一题 2020.11.4

57. 插入区间给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。思路:遍历一遍已有区间,对和要插入的区间有重叠的部分进行合并即可func insert(intervals [][]int, newInterval []int) (ans [][]int) { l,r := newInterval[0],newInterval[1] flag := false for _ ,

2020-11-04 15:48:12 107

原创 每日一题 2020.11.3

941. 有效的山脉数组给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < … A[i-1] < A[i]A[i] > A[i+1] > … > A[A.length - 1]思路:双指针,检查两个指针最后是否相交func

2020-11-04 15:46:36 65

原创 每日一题 2020.11.2

349. 两个数组的交集给定两个数组,编写一个函数来计算它们的交集。思路:一个map维护某一个数组出现过的数,另一个map维护结果是否已经统计过该数func intersection(nums1 []int, nums2 []int) []int { map1 := make(map[int]bool) map2 := make(map[int]bool) ans := make([]int,0) for _ , num := range nums1{

2020-11-04 15:45:08 68

原创 每日一题 2020.11.1

140. 单词拆分 II给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。思路:记忆化搜索var dp [][][]stringvar words map[string]boolfunc solve(index int,s string) [][]string{ if dp[index] != nil{

2020-11-01 15:39:22 80

原创 每日一题 2020.10.31

381. O(1) 时间插入、删除和获取随机元素 - 允许重复设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构。注意: 允许出现重复元素。insert(val):向集合中插入元素 val。remove(val):当 val 存在时,从集合中移除一个 val。getRandom:从现有集合中随机获取一个元素。每个元素被返回的概率应该与其在集合中的数量呈线性相关。思路:用一个数组存储出现过的所有数,对于每个val维护其出现的下标,随机值通过随机下标获得type Rando

2020-10-31 10:50:38 150

原创 每日一题 2020.10.30

463. 岛屿的周长给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。思路: 遍历一遍即可func islandPerimeter(grid [][]int) in

2020-10-30 18:51:16 164

原创 每日一题 2020.10.29

129. 求根到叶子节点数字之和给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。思路:dfs即可/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode

2020-10-29 09:15:05 138

原创 每日一题 2020.10.28

1207. 独一无二的出现次数给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。思路:两个hash,一个用于统计每个数出现的次数,一个用于统计出现次数是否已经出现func uniqueOccurrences(arr []int) bool { hash := make(map[int]int) for _ , v := range arr{ hash[v]++ } vis := make(map[int

2020-10-28 15:33:13 81

原创 简单的并发模型介绍

Future联合异步请求和代理模式客户端发生请求后,服务端立即返回一个假的代理数据,用户无需等待,执行其他操作后,再去调用服务器组装的真实数据。当用户请求真实数据时, 会先判断是否组装好,如果没有组装好会wait,组装完毕后通知该线程,返回结果。Fork/Join模型将任务分割成若干小任务,然后通过不同线程来做这些小任务,最后组装成大任务。Actor模型Actor模型 = 数据 + 行为 + 消息每个Actor封装自己的状态,并且和其他Actor物理隔离。Actor内部时单线.

2020-05-22 11:13:45 150

原创 LRU的简单实现

LRU是常用的缓存淘汰策略。缓存的“热度”可以看作是没有访问该缓存的时间,所以会维护一个有序列表,每次访问缓存时,将访问的缓存移动到最前面。当超过容量限制后,删除最久没有被访问的。LRU有一些问题,比如如果某个缓存只是偶尔被访问,那也可能再某个情况下,它恰好之前刚被访问一次,导致他不会被删除。所以有改进的方法LFU,LFU还会维护访问次数。Redis中使用的是近似的LRU,因为LRU会造成大量的空间消耗。Redis通过维护前一次访问时间,每次随机选择几个,删除最久未被访问的,重复采样知道满足内存要求。.

2020-05-21 19:01:13 169

原创 MySQL中是如何解决幻读问题的

读写并发MVCC多版本控制可以看做是乐观锁的一种实现,维护版本号保证了同一个事务中,数据一致性每行数据都存在一个版本,每次修改更新时会更新版本修改时,会拷贝出当前版本号,然后随意更改,事务之间不干扰保存时,如果成功会覆盖记录,失败则回滚查询时,需要满足两个条件删除版本号未指定或者大于当前事务版本号,也就是保证读取的行并未被删除创建版本号小于或等于当前版本号,也就是在之前的事务进行的插入写写并发间隙锁行锁锁住了行,但是无法解决插入删除操作,因为他们实际是对于行之.

2020-05-20 13:42:41 247

原创 使用Redis实现一个简单的消息队列

使用list数据结构实现一个简单的消息队列list数据结构提供一种阻塞读取的方式blpop/rlpop,使用该接口可以再队列没有消息时先休眠,有消息过来时再立即苏醒,消息几乎无延迟。阻塞超过设定的timeout后会返回一个空值。代码实现:package com.xliu.chapter1;import redis.clients.jedis.Jedis;import java.s...

2020-04-23 13:39:23 227

原创 实现一个简单的漏斗限流

限流:系统能力有限或出现有恶意请求时,需要组织部分请求,防止系统压力过大造成宕机。也就是在规定时间内一个操作只能执行有限次数,超出就是非法行为。简单限流:通过维护某个时间区间,判断改时间区间内发生的次数。漏斗限流:在每次试图处理请求前,先计算和上一次请求的间隔,并恢复该部分的空间。只有在空间允许的情况下才会放行该请求。redis不能直接使用以下代码思路,因为无法保证操作的原子性,如果为...

2020-04-22 19:26:02 318

原创 Redis中HyperLogLog的一些小知识

HyperLogLog是Redis的高级数据结构,可以实现统计用户访问情况中的UV情况,也就是独立访问次数,重复用户在每天只算一次。HyperLogLog提供了一种不精确的去重计数方案,标准误差为0.81%。实现原理:通过记录低位最长的连续零位数据,估计出总的数量。经过试验发现随机数总数的对数和最长零位长度存在显著线性关系。通过设置多个桶,计算平均估计,达到较准确的结果使...

2020-04-22 10:31:52 183

原创 Redis实现一个简单的延时队列

延时队列通过redis中的zset我们可以实现一个简单的延时队列。通过将score设置为时间,然后多线程轮训的去查询是否有到期的可以执行的任务。考虑到多线程并发,使用zrem去保证每一个任务只会被执行1次,这里也可以使用lua脚本来优化,减少空取的情况。代码实现package com.xliu.chapter1;import com.alibaba.fastjson.JSON...

2020-04-22 09:16:18 245

原创 Redis实现可重入分布式锁

分布式锁通过在redis设置一个特定值,只有成功设置这个值得线程,才被看做拿到了锁,并能去使用一些资源,使用结束后删除该值,使得其他线程能去拿到高锁。由于业务逻辑中可能出现异常,导致删除操作没有被执行,引发死锁,所以一般会给锁设置一个较短的有效值。超时问题由于业务逻辑有可能比较复杂,导致锁已经失效,但业务逻辑还没执行结束。所以一般不建议在较长时间的业务中使用redis分布式锁。出...

2020-04-21 14:44:08 891

原创 事务的一些小知识

数据库事务原子性:组成一个事务的多个数据库操作为一个整体,只有全部成功才能提交,只要一个失败就需要全部回滚撤销。一致性:事务成功后,数据库状态和他的业务规则要一致。隔离性:不同事物之间不会互相干扰。但实际中并不会要求完全不会干扰,不同的事务隔离级别对于不同的干扰程度。持久性:一旦事务成功,所有数据都需要被持久化到数据库中。数据并发的问题脏读:A事务读到了B事务未提交更改的数据...

2020-04-21 13:43:01 103

原创 volatile的一点小知识

volatile是轻量级的synchronized。保证可见性,避免指令重排,但不保证原子性。内存屏障:一组处理器指令,实现对内存操作的顺序限制。有volatile修饰的变量,在进行写操作时,会发生两件事:Lock前缀指令会引起处理器缓存回写内存,也就是写一个volatile变量时,JMM会把线程对应的本地内存中的共享变量值刷新到主内存。一个处理器缓存回写内存会导致其他处理器的缓存失效...

2020-04-17 18:54:39 99

原创 Spring中AOP的实现

参考书籍:精通Spring4.x企业应用开发实战何为AOP面向切面编程,通过横向抽取机制为无法通过纵向体系进行抽象的重复代码提供解决方法连接点:Joinpoint,指程序的某个特定位置,Spring仅支持方法的连接点,在方法调用前后,抛出异常时织入增强。切点:PointCut,通过切点定位特定的连接点,一个切点可以匹配多个连接点。增强:Advice,增强既包含添加到连接点上的代码逻...

2020-04-16 18:45:18 116

原创 Spring中Bean的生命周期

参考书籍:精通Spring4.x企业应用开发实战生命周期具体过程如果注册了InstantiationAwareBeanPostProcessor后处理器,在实例化之前会调用postProcessBeforeInstantiation方法。调用Bean的构造方法实例化Bean。如果注册了InstantiationAwareBeanPostProcessor后处理器,在实例化之后会调用pos...

2020-04-15 21:21:04 71

原创 LeetCode 数据库刷题

发现LeetCode还能做数据库的题,最近比较闲,就一起做了。题目还挺难的,中等的基本就不会了,题解大法好。题目列表175. 组合两个表175.第二高的薪水177. 第N高的薪水178. 分数排名180. 连续出现的数字181. 超过经理收入的员工182. 查找重复的电子邮箱183. 从不订购的客户184. 部门工资最高的员工196. 删除重复的电子邮箱175. 组合两个表思路:left j...

2020-03-25 20:01:58 589

原创 剑指Offer刷题记录

做了一场笔试,发现自己的代码的水平实属堪忧,用java刷点基础题,顺带复习一下基本语法吧。随缘更新,75题预计三周写完。 @TOC面试题03. 数组中重复的数字思路:长度为n,并且数字范围在0-n-1,所以可以考虑把每个数字放到他应该在的位置,如果放过去的时候发现已经被占了,那么就说明这个数重复了。class Solution { public int findRepeatNu...

2020-03-20 15:50:44 314

原创 CornerNet论文笔记

论文背景及大致思路a. 一日,在某讨论群,有位小伙伴提问:有哪些不用Anchor的检测方法呢,小伙伴纷纷回复”CornerNet“,那么显然可知,这篇文章舍弃了Anchor,转而通过预测两个顶角的方法”曲线救国“。本文发表在ECCV2018,被多个自媒体成为“本次ECCV最值得关注的检测方法”。b. 其实最后一句是我瞎逼逼的。不过,文中表示在COCO上达到了42.1%的准确率,还是相当不错...

2018-12-13 11:00:25 479 3

原创 FPN论文笔记

论文背景及大致思路a. FAIR,康奈尔大学出品,将传统图像领域常用的金字塔结构引入网络结构,加入横向连接,并根据预测目标大小,在不同的特征层进行预测。充分利用浅层的位置信息和高层的语义信息,将FPN和Faster R-CNN结合后,在COCO数据集上得到了很好的效果。和其他的结构的异同a. 可以看到CNN的过程就是一个天然的金字塔结构了。由于池化等操作,随着层数的加深,感受野的增...

2018-12-07 15:00:04 186

原创 IoU-Net论文笔记

论文背景及大致思路a. 清北,Face++,头条四家联合出品,一看就是有点厉害的文章。发表于ECCV2018.b. 文章从我们常常忽略的定位的准确率出发,提出了利用预测IoU来辅助检测的IoU Net。在多个数据集上得到了当前的最佳效果。发现的问题和主要工作a. 首先大概的讲一下传统的NMS。首先拿出分类置信度最高的预测框,然后将同一类别的框都拿出来和他算一算IoU,如果大于了一个...

2018-12-06 22:00:28 573

原创 Mask R-CNN论文笔记

背景及大致思路a. 何凯明基于Faster R-CNN提出的用于实例分割的结构框架。该框架在原本的结构上增加了用于预测mask的新支路,速度仍达到了5fps。同时,这个结构也能用于其他的视觉任务如检测,人物关键点检测。b. 实例分割:是物体检测和语义分割的结合,也就是要对每个像素都给出其对应的分类。c. 方法的主要改变在于,在对ROI操作时,增加了一条平行的用于预测分割的支路。这条支路是...

2018-12-05 20:38:42 145

原创 Deformable Convolution Net论文笔记

论文大致背景及思路a. MSRA在2017年的作品,最近出了V2版本。b. 提出了两个模块用于加强CNN对变形的适应能力。c. 对于几何变化,目前有两种方法:i. 构造一个足够强的数据集ii. 使用一些具有旋转变形不变性的特征算法,比如SIFTd. 上述方法有两个问题:i. 我们假定了这些几何变化都是固定且已知的,那么在处理未知情况时,就无法很好地得到结果了。ii. 手工设计的...

2018-11-29 14:23:53 482

原创 SeNet论文笔记

大致背景及思路a. 由Momenta团队完成,2017年ImageNet大赛的冠军结构,top-5 error降到了只有2.25%,相比于2016年冠军,有接近25%的提高。b. 为了提高网络提取特征的能力,很多方法都致力于在空间上做出一些加强。而这篇文章,从通道之间的关系入手,提出了一个新的结构单元“SE Block”。具体结构及思路a. 首先从CNN说起,CNN通过在局部感受野上,通...

2018-11-27 22:29:09 255

原创 SSD论文笔记

大致背景及思路介绍a. 一篇很经典的文章,SSD家族的开山鼻祖,在当年达到了比Yolo快,比Yolo准的水平。b. 引入了多尺度检测,使得检测框的数量和大小种类大大增多,达到了更好的水平。c. Default box的引入,类似于Anchors。与R-CNN系列,YOLO的比较a. R-CNN系列的特点就是准和慢。SSD与之相比最大提高就是快,这里主要是由于不需要进行RPN和RO...

2018-11-26 16:53:55 135

原创 RFB-Net论文笔记

2018-11-23 16:28:40 564

原创 RefineDet论文笔记

2018-11-23 10:56:03 270

原创 Faster R-CNN论文笔记

2018-11-21 22:59:37 98

原创 DPN论文笔记

2018-11-20 15:19:13 377

原创 DenseNet论文笔记

2018-11-19 16:53:15 144

原创 ResNeXt论文笔记

2018-11-18 14:04:50 252

原创 DetNet论文笔记

2018-11-15 14:09:16 209

原创 CCPC长春赛区流水账

Day 1:   坐了27个小时火车……整个人下车都快崩溃了。出站就感觉到了北方的“凉爽”~~出租车半个小时就到了宾馆, 这个宾馆的设计简直是醉了,浴室没有门是个啥玩意??晚上去了仁风阁,朝鲜妹子真是太温柔了~~Day 2:早上去报道,领了150块,内心十分激动。走进日新楼,我有点懵逼。这个真的是食堂?!电影院…游泳馆…电竞中心…三楼基本都是饭店…很轻松的一顿花了80+。吃完饭,下...

2016-09-27 23:50:45 1216

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除