自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (3)
  • 问答 (5)
  • 收藏
  • 关注

原创 快速排序的最优和最差比较次数

这个问题其实也没有多么复杂,但是网上这部分内容不多,故总结一下最优与最差比较次数。n个元素线性表快速排序,最好情况下比较次数是多少?参照严书的方法,以第一位作为标杆。①考虑第一趟排序,无论怎样也要有n-1次比较次数;②如果此时能把数据分成两部分,前一部分与后一部分元素个数相近,那样就是最优的。 例如,4 1 2 3 5 6 7,经过一趟排序,变成 1 2 3 4 5 6

2017-09-28 00:03:28 39592 8

原创 记录一次不错架构设计

文章目录前言记录一次架构设计总体架构图前言工作快2年了,平时CURD特别忙,最近看了一些八股,发现落后了很多,现在的同学们都太强了。之前活水wxg挂了,太菜……这次记录一下一个业务上一个优秀的架构设计。记录一次架构设计总体架构图背景是,展示一个关注歌手的歌单列表,按照发布时间降序排列。关注歌手,其实就是你这个uid关注的其他的uid,每个歌手发伴奏,就是他们发feed。然后要按照时间戳降序,在你的页面展示所有的伴奏。(比如说微信朋友圈好友,发了一个朋友圈,你这边能看到,还是按照发布时间降

2022-04-24 11:31:43 287

原创 并查集

//并查集class DSU {public: DSU(int n): parent(n) { //构造函数 for (int i = 0 ; i < n; ++i) parent[i] = i; } void Union(int i, int j) { //将i所在的集合与j所在的集合合并...

2019-09-01 14:13:57 183

原创 霍夫曼的应用--leetcode 1167

https://leetcode.com/problems/minimum-cost-to-connect-sticks/思路,将两个短的求和,然后放入数列中;再取两个短的;因此是霍夫曼树。使用优先级队列即可:class Solution {public: int connectSticks(vector<int>& sticks) { ...

2019-08-25 02:15:50 842

原创 力扣双周赛--最小生成树的应用

https://leetcode-cn.com/contest/biweekly-contest-7/problems/optimize-water-distribution-in-a-village/这个题目可以转化为最小生成树。构建虚拟结点0,并且将所有结点与之联系,长度为wi,如下:然后对改图求最小生成树,即可求得最小cost。struct Edge{ int ...

2019-08-25 01:15:43 739 1

原创 leetcode-322 零钱兑换--完全背包问题

原题地址:https://leetcode.com/problems/coin-change/这个题目可以用dfs来写,但是很容易超时,需要剪枝。dp中有经典的背包九讲,而此题目正好是一种完全背包的模型。首先看完全背包模型:有 N 种物品和一个容量为 V 的背包,每种物品都有无限件可用。放入第 i 种物品 的费用是 Ci,价值是 Wi。求解:将哪些物品装入背包,可使这些物品的耗费的...

2019-08-09 12:00:56 1010 2

原创 Best Time to Buy and Sell Stock IV-买卖股票问题

leetcode原题地址:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/REFERENCE:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/discuss/135704/Detail-explanation-of-DP-so...

2019-05-14 01:14:49 210

原创 word2vec怎么得到词向量?

word2vec有两种模型,CBOW和Skip-gram;前者是通过context(w)[即词w的上下文]的词向量获得w最可能的词(w为各个词的概率,就能得到最可能的词),后者是相反的,通过w获得上下文context(w)。简单理解即为如下两幅图[1]:对于CBOW模型,输入的即为词向量,但是词向量怎么来的?实际上,前面还有一层,如下图[2]:前一层输入的是每个单词的o...

2019-05-09 05:46:42 1335

原创 KMP算法

题目描述:两个字符串s1和s2,实现一个算法,如果s1含有子串s2,则返回s2在s1的开始位置,否则返回-1。KMP算法解决了字符串匹配问题。时间复杂度O(N),其中N为s1的长度。KMP算法还有诸多应用。首先是next数组,next[j] 表示当前字符s[j]前面,最长相同的前缀后缀长度。举个例子:ababc,c前面为abab,最长相同前缀后缀长度是2,即ab。再如:ababac...

2019-04-27 23:38:29 198

原创 leetcode 124. Binary Tree Maximum Path Sum

地址:https://leetcode.com/problems/binary-tree-maximum-path-sum/Given anon-emptybinary tree, find the maximum path sum.For this problem, a path is defined as any sequence of nodes from some starti...

2019-04-07 02:50:58 146

原创 TCP为什么要三次握手,握手结束后第一次发送数据的ACKnum是多少?

TCP为什么要三次握手?TCP三次握手过程,简单来讲如下:1.客户端发起第一次握手(SYN=1, seq=x)2.服务器端发起第二次握手(SYN=1, seq=y, ACKnum=x+1)3.客户端发起第三次握手(ACKnum=y+1)但为什么要三次握手,而不是两次或者四次?根本原因就是双方要协商好初始的 seq。TCP确认哪个包重传,解决包乱序,都是通过seq实现。因...

2019-04-06 01:13:21 3245

原创 快速排序(Quick Sort) 归并排序(Merge Sort) 堆排序(HeapSort) C++实现及时间空间复杂度

//QuickSortint partition(vector<int>& A,int low,int high){ int pivot=A[low]; while(low<high){ while(low<high && A[high]>=pivot) high--; A[low]=A...

2019-03-17 14:07:16 547

原创 利用百度AI文字识别实现网页游戏火影忍者OL自动定向劫镖功能(python)

介绍:所谓定向劫镖,即劫特定玩家的镖。游戏里要求每个区的每个角色的名字是唯一的,因此可以通过玩家游戏名称实现定向劫镖。经过观察可以发现游戏的劫镖功能有以下特点:①进入劫镖界面后,所有押镖的玩家将出现在特定的位置,是一个列表形式。②可以获取界面坐标,并获取每个列表的截图,调用适当的库即可将图中文字识别出来。③游戏名带有区号,这个可以很大提高劫镖准确率。思路:①获取劫镖界面的坐标,并由此获得所有押镖玩...

2018-07-06 16:17:22 1266

原创 C++ map遍历,map排序--- PAT B1080 MOOC成绩

题目链接:https://www.patest.cn/contests/pat-b-practise/1080在B1044讲过map的简单应用,此题目主要用到了map的遍历、map的排序(可以对Value排序)。map的key值可以是任意类型,遍历时需要用到迭代器。比如:map&lt;string,Student&gt; stu; //定义一个map,包含string的学号和Student结构体...

2018-02-09 16:39:21 1025 1

原创 C++ map简单应用、进制转换打表法---PAT B1044火星数字

题目链接:https://www.patest.cn/contests/pat-b-practise/1044该题目涉及到转换,可采用“打表法”,将所有结果都存入表格,需要转换时自取就可。由于“火星文”是英文字母,打表时候考虑使用map,将会变得简单可行。map可以看成下标是指定类型的数组,一般通过一个下标(整型)找到一个string型,利用string数组可以很方便;如果利用stri

2018-02-07 19:47:53 492

原创 PAT--A1038贪心算法

地址:https://www.patest.cn/contests/pat-a-practise/1038数字串排成最小,初看可以很轻易想到,只要将数字串从高位到低位每位比较,小的放前面即可。但是,例子中出现32、321、3214这三个数的排列。首先想到的是,将它们重复的部分补上,即后面均补上"32",此时,三个数变为3232、32132、321432,从高位依次比较很容易得到结果。这样想

2018-02-01 17:27:58 501

模式分类中文版及部分答案Richard等

模式分类中文版及部分答案,请认准下载 答案只有部分,不包含编程题

2019-03-11

深入理解计算机系统

深入理解计算机系统 经典之作,中文版 Randal E. Bryant/ Davic O'Hallaron著 龚奕利/ 雷迎春 译

2017-03-25

commons-httpclient.jar,commons-codec.jar,commons-logging.jar

commons-httpclient.jar,commons-codec.jar,commons-logging.jar 需要的自取,版本可能较老

2016-12-28

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

TA关注的人

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