自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(152)
  • 收藏
  • 关注

原创 Ubuntu18.04配置与美化入门版(Gnome)

文章目录Ubuntu18.04配(gao)置(ji)与美化升级版(Gnome)最终效果图换源软件安装指南软件推荐美化拓展系统主题终端Ubuntu18.04配(gao)置(ji)与美化升级版(Gnome)在用了很久unity桌面了之后,机缘巧合让我重装了Ubuntu18.04,由于18.04默认的桌面就是gnome3,我也懒得换了,而且也挺好用,于是我就着手进行gnome3的美化,这里是我的一些...

2019-12-09 13:48:47 741

原创 用Python写一个走迷宫的小程序(图形化:matplotlib,dfs,prim)

不要脸的放到了Github上面,嘿嘿。Github:https://github.com/Radium1209/Maze先看一下动态效果图(慢放):所需要的库:matplotlib# for Linux# python 3+$ sudo apt-get install python3-matplotlib# python 2+$ sudo apt-get ...

2018-10-14 22:23:02 4163 4

原创 MeBook-Spider(我的小书屋爬虫)

第一次做的爬虫,比较简略(会不断改进)用的自带的urllib2库(python2)用到了简单的正则表达式(re库)能爬取我的小书屋中书籍的百度网盘地址以及密码Github:https://github.com/Radium1209/MeBook-Spider...

2018-05-22 12:47:10 9870

原创 2020百度C++/PHP笔试部分题解(9.14)

编程题前两题都很快写出来了,奈何不会期望,第三题无了。第一题题意有n个吃的,每个吃的有对应的饱腹感,吃到m就饱了,问最少吃多少个就可以吃饱,分别吃哪几个。吃不饱输出-1。分析直接从大到小吃就行了。参考代码#include <cstdio>#include <iostream>#include <algorithm>using namespace std;int T, n, m;struct node { int id, val;};.

2020-09-14 21:45:49 572 1

原创 2020阿里笔试题解(9.11)

一个小时两道题,感觉难度也没有传说中的那么大,第二题稍微卡了一会,但是还是做完了第一题题意有一个长度为n的全是小写字母的字符串,有m个要匹配的字符串,问一共能匹配多少次。例如ababa,2个匹配字符串ab和aba,共能匹配4次。ab2次,aba两次。数据范围n和m为1e5,匹配字符串长度为[2,10]。分析因为匹配字符串长度很短,因此完全可以计算所有的长度为[2,10]的子串的个数,然后用map来存,然后将m个匹配字符串的个数相加即可。参考代码#include <cstdio&g.

2020-09-11 10:16:37 2569 6

原创 2020腾讯第二次笔试(9.7)部分题解

并查集卡了好久没时间,最后一题蹭了5%第一题题意两个降序链表求相同的部分。分析不想写链表就直接数组了,直接搞个map就行了。参考代码#include <cstdio>#include <iostream>#include <map>using namespace std;const int MAXN = 1000005;int n, m;int a[MAXN], b[MAXN];map<int, int> Map;int .

2020-09-07 00:22:45 695 1

原创 腾讯秋招面经(WXG一面+面委一面+面委二面)

4道算法题时间50分钟atoi实现求字符串能分割成的所有ipv4地址链表逆置有一个均匀生成0-65535的随机数rand(),实现从30W(编号为1-300000)人抽10W人。前三题都是比较常见的题,第四题之前没遇到过,本质上是要用一个小的随机数生成大的随机数,不知道正确的做法应该是怎么样的。当时想了一个办法,就是用rand()来生成两个3位数a和b,再用a和b生成一个六位数a*1000+b,这样可以保证每个数字生成的概率是相同的,然后就可以随机生成1-300000了,后面只需要用个set

2020-08-24 00:22:53 2664 4

原创 2020秋招字节跳动凉经

一面直接挂了。。。自我介绍自我介绍比赛相关的内容,不过看起来面试官完全不知道这个比赛,问的问题不知道怎么回答。实习做的项目基础相关C++智能指针引用和指针的区别OSI七层模型交换机和路由器分别在哪一层TCP和UDP的区别TCP如何保证传输的可靠性HTTP中GET和POST的区别HTTP和HTTPS的区别HTTP1.1和HTTP2.0的区别事务的特点范式的分类算法/应用题剑指Offer——把数组排成最小的数如何测试微信的视频功能...

2020-08-13 23:53:58 210

原创 2020微软实习面经(一面+二面+leader面)

2020微软实习面经(一面+二面)两面都是技术面,基本上问的内容大同小异,有3个部分,一个是语言基础和数据结构之类的,一个是设计分析题,一个是编程题。面试体验比较好,面试官也很耐心,设计分析题感觉比较有难度,尤其是二面的,我是真的没什么想法。一面面试官是一个小哥哥,先让英文自我介绍,emm没太准备,随便说了点,还好后面都是中文的。问了点数据结构的东西,记不太清了,反正让比较了一下各种数据结...

2020-04-28 17:26:33 4932 5

原创 快手C++算法工程化实习面经(一面+二面)

快手C++算法工程化实习面经(一面+二面)这次面试全是手撕题目,每一面三题,不过一开始都有一段自我介绍。顺便说一下,很多天以前面了字节,听说字节面试是这样的,结果全程问基础知识,两面完直接没了,可能是投的岗位不同?一面很迷惑,一开始面试官居然开始自我介绍了,然后说了一堆,大概介绍了一下部门。然后让我自我介绍。介绍完了就直接开始做题。第一个题目给n个概率P,和为1,然后实现一个类,其中有一...

2020-04-23 21:12:44 765

原创 使用docker部署domjudge

官方教程地址:https://hub.docker.com/r/domjudge/domserver安装dockerubuntu下直接运行sudo apt install curlcurl -fsSL get.docker.com -o get-docker.shsudo sh get-docker.sh --mirror Aliyun使用以下指令启用dockersudo sys...

2020-04-22 20:35:12 1273

原创 腾讯TEG暑期实习面经(一面+二面+hr面)

腾讯TEG暑期实习面经(一面+二面+hr面)总的来说是一次比较奇怪的面试经历,首先是一面和二面隔了快一个月吧,一面大概3月初,一直没消息以为已经没了,但是官网却一直是复试,也不太清楚什么情况。然后3月底的时候突然收到了二面的通知,然后二面完全没有问任何技术方面的问题,感觉基本上都在聊天,可能是项目经验太少,没啥好问?然后第二天马上hr面。总之和我看到的别人的面经完全不一样,记录一下。一面开始...

2020-04-15 21:47:09 2976

原创 剑指Offer——数组中的逆序对

剑指Offer——数组中的逆序对题意在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。分析先离散化再,利用树状数组。首先先计算出每个数最后排完序所在的位置,用一个map来存储。然后动态加点,每次把每个数该在的位置上加上1,若一个数该在的位置为x,则在x位置加上1。用query(x)查询1-x的和,也就是之前(包括自己...

2020-04-14 22:08:20 152

原创 剑指Offer——二叉树的最近公共祖先

剑指Offer——二叉树的最近公共祖先题意给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”分析如果当前节点就是p或q直接返回如果左子树和右子树有p和q返回当前节点如果只有一边有那就任然返回p或者q递...

2020-04-14 21:44:36 215

原创 剑指Offer——队列的最大值

剑指Offer——队列的最大值题目描述请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1想法和栈的最大值类似,栈是用两个栈来实现,不过队列略微有些不同,我们需要一个双向链表来维护这个队列的最大值。双向链...

2020-04-14 21:20:53 198

原创 美团后端实习面经(一面+二面)

美团后端实习面经(一面+二面)总的来说体验还可以,本人由于没什么项目,所以好像也没问太多。不过代码题都是剑指Offer的题(好像)。一面先自我介绍,巴拉巴拉。面向对象的特点——封装、继承、多态。如何实现多态红黑树特点(没项目,写了个红黑树)其他方式实现map——hashhash解决冲突(用一个链表?好像以前看的是这样),然后深入聊了一下,比如如果一条链太长了怎么办,能不能用红黑树...

2020-04-13 16:37:12 1236

原创 2020快手笔试题解(4.12)

一共四道编程题,总体难度一般,比较快就做完了。第一题题意括号匹配,给一个字符串,问有多少对匹配的括号,多少个未匹配的左括号,多少个未匹配的右括号。分析令匹配的括号对个数a,未匹配左括号b,未匹配右括号c。扫一边字符串,有左括号就b++,有右括号看看有没有b,有b就a++,b–,否则就c++。代码#include <cstdio>#include <iostrea...

2020-04-12 18:43:53 790

原创 剑指Offer——最小的k个数

最小的k个数题目描述输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。想法复习一下快排,快排的核心就是先找一个基准数(一般为第一个),然后将所有比基准数小的数字放到自己左边,大的放右边。然后递归操作左边和右边。具体的操作是设置两个指针分别指向头和尾,然后不断缩小左右边界,如果出现大的数字在左边就放到右边...

2020-04-11 21:22:16 120

原创 剑指Offer——1~n整数中1出现的次数

剑指Offer——1~n整数中1出现的次数题目描述输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。想法这个题目应该是比较明显的一个数位dp,只不过我忘的差不多了,贴一个讲的很好的数位dp。https://blog.csdn.net/jk211766/article/details/...

2020-04-10 18:59:54 179

原创 2020美团笔试部分题解(4.9)

美团笔试全是大题,还是比较适合我的,一共五题。第一题题意给你一个日期包星期几以及时和分,然后一个时间n,问n分钟之前是星期几和几时几分。分析暴力一点,数据也不大,先算出当前的总分钟,然后减去n,不断+1440直到为正。注意一下格式,输出的时候要补0。代码#include <cstdio>#include <iostream>using namespace ...

2020-04-09 22:35:49 4983

原创 剑指Offer——数值的整数次方

数值的整数次方题目描述实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。想法快速幂,不过此时要考虑一下n为负的情况,而且n取反时可能会爆int,同时还可以加两个特判。代码class Solution {public: double myPow(double x, i...

2020-04-05 09:07:08 149

原创 剑指Offer——二进制中1的个数

二进制中1的个数题目描述请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。想法直接按位与,时间复杂度O(logn)O(logn)O(logn)。利用n&(n−1)n\&(n-1)n&(n−1)将n最后一位1置0,时间复杂度O(m)O(m)O(m),m为1...

2020-04-05 08:50:01 112

原创 2020百度C++笔试题解(3.29)

基础的选择题说实话不太行,基础不太扎实,然后编程题倒是不太难,这边写一下题解。第一题题意大概是给你一个n,然后找一对a,b满足a,b都小于n。并且lcm(a,b)-gcd(a,b)最小。分析一开始以为和一道做过的cf题一样,仔细想了下发现更简单,这个就是要lcm最大同时gcd最小,gcd最小一定是1,同时使得lcm最大,那一定是n和n-1。于是答案就是n*(n-1)-1,注意要开long...

2020-03-30 17:15:45 1523 2

原创 Linux高性能服务器编程学习笔记(二)

第6章 高级I/O函数Linux高性能服务器编程学习笔记6.1 pipe函数用于创建一个管道#include <unistd.h>int pip( int fd[2] );/* 成功返回0,失败返回-1置errno */fd[0]用于读,fd[1]用于写。管道容量的大小默认是65536字节。可以使用fcntl函数来修改管道容量。用socketpair创建双向...

2020-03-22 20:52:34 351

原创 Linux高性能服务器编程学习笔记(一)

第5章 Linux网络编程基础APILinux高性能服务器编程学习笔记5.1 socket地址API5.1.1 主机字节序和网络字节序主机字节序–>小端 低–>低网络字节序–>大端 高–>低主机字节序和网路字节序转换:/* n表示network, h表示host */#include <netinet/in.h>unsigned lon...

2020-03-21 22:06:49 481

原创 用红黑树实现map和set

用红黑树实现map和set上一篇文章讲解了如何实现红黑树:https://blog.csdn.net/Radium_1209/article/details/104873813这里我们用已经实现的红黑树来写一个简单的map和set。因为map有两个参数,所以我们要先对原来的代码进行微调,将传入的参数调整为Key和Value。还有一些地方需要微调,详见https://github.com/...

2020-03-18 20:50:16 537

原创 对红黑树的一些理解及实现

对红黑树的一些理解及实现红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。以下是我对红黑树的一些理解,可供参考,不保证准确性。参考了以下博文:https://www.cnblogs.com/alantu2018/p/8462017.html特性每个节点是黑色或红色(所以叫红黑树)根节点是黑色的叶节点是...

2020-03-18 20:04:40 327

原创 剑指Offer——和为S的连续正数序列

和为S的连续正数序列题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和...

2020-02-14 13:50:32 151

原创 剑指Offer——数字在排序数组中出现的次数

数字在排序数组中出现的次数题目描述统计一个数字在排序数组中出现的次数。想法二分找到第一个等于k的位置,和第一个大于k的位置,做差就是出现次数。直接调lower_bound()和upper_bound()。代码class Solution {public: int GetNumberOfK(vector<int> data ,int k) { aut...

2020-02-13 20:36:35 102

原创 剑指Offer——二叉树的下一个结点

二叉树的下一个结点题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。想法要求的是中序遍历的下一个结点,中序遍历的顺序是左根右。那么会有3种可能。有右孩子,那么下一个就是右孩子的最左下角的孩子无右孩子,是父节点的左孩子。那么下一个就是父节点。无右孩子,是父节点的右孩子。那么下一个就是父节点一直...

2020-02-13 19:59:35 162

原创 剑指Offer——平衡二叉树

平衡二叉树题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。想法平衡二叉树定义如下:平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。满足平衡二叉树有两个条件:左右子树高度差不超过1左右子树都是平衡二叉树所以再写一个求树高的函数即可。代码class Sol...

2020-02-13 14:24:45 115

原创 剑指Offer——从上往下打印二叉树

从上往下打印二叉树题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。想法二叉树层次遍历,一个bfs。代码class Solution {public: vector<int> PrintFromTopToBottom(TreeNode* root) { vector<int> ans; queue<Tr...

2020-02-13 13:26:11 89

原创 剑指Offer——包含min函数的栈

包含min函数的栈题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。想法通过另外一个栈来保存当前栈的最小值。而这个最小值在它被pop时就不再有效,此时有效的最小值是上一个最小值(因此我们需要将最小值存在栈中,以便当前最小值被删除时恢复上一个最小值)。代码class Solution {public: stack&lt...

2020-02-13 13:19:55 168

原创 剑指Offer——重建二叉树

重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。想法递归处理前序遍历的顺序是:根左右中序遍历的顺序是:左根右所以根一定是pre[0],所以我们可以把整个树拆成三部分来处理当前节点...

2020-02-12 14:38:56 91

原创 简单数据库实现——Part13 - 更新父节点

简单数据库实现——Part13 - 更新父节点接下来一步,我们将处理在分裂叶节点后如何修复父节点。以下面的例子为参考:在我们的例子中,我们将key3添加到树中,这会导致左叶节点分裂。分裂之后我们将通过以下操作来修复树:将父节点中的第一个键更新为左孩子中的最大键(3)在更新key之后添加新的键指对新的指针指向新的子节点新键是新子节点中的最大键(5)因此,首先,用两个新的函数...

2020-02-09 14:42:40 290

原创 简单数据库实现——Part12 - 扫描多级B树

简单数据库实现——Part12 - 扫描多级B树我们现在支持构造一个多级B树,但是这破坏了select语句。下面是一个测试用例,他插入15行,然后尝试打印它们。+ it 'prints all rows in a multi-level tree' do+ script = []+ (1..15).each do |i|+ script << "ins...

2020-02-08 14:26:47 191

原创 简单数据库实现——Part11 - 递归搜索B树

简单数据库实现——Part11 - 递归搜索B树

2020-02-07 19:25:30 160

原创 简单数据库实现——Part10 - 分裂叶节点

简单数据库实现——Part10 - 分裂叶节点我们的B树现在只有一个节点,这看起来不像是一棵树。所以,我们需要一个将叶节点一分为二的函数,同时创建一个内部节点作为两个新的叶节点的父节点。我们的目标是从:转变为:这时我们不再需要叶节点已满的错误,先删去。 void leaf_node_insert(Cursor* cursor, uint32_t key, Row* value) {...

2020-02-06 11:21:11 283

原创 简单数据库实现——Part9 - 二分搜索和重复键

简单数据库实现——Part9 - 二分搜索和重复键上一部分我们的数据仍然没有排序,这个部分我们会修复这个问题,并检测和拒绝重复的键。现在,我们的execute_insert()函数总是在表的最后插入。而实际上我们应该在表中找到正确的位置插入,并且如果键已经存在,应该返回一个错误。ExecuteResult execute_insert(Statement* statement, Table*...

2020-02-03 13:58:19 135

原创 简单数据库实现——Part8 - B树的叶节点结构

简单数据库实现——Part8 - B树的叶节点结构我们正在将表的结构更改为B树。这是一个很大的变化,需要很多篇文章。本文中,我们将定义叶节点的布局,并支持将键值对插入到单节点树中。首先,我们来回顾一下切换到树形结构的原因。选择表结构使用当前的结构,每个页面只存储行,因此空间利用率很高,我们只在末尾追加,所以插入也很快。但是只能通过扫描整个表来查找特定的行。如果我们想删除一行,必须移动后面所有...

2020-01-31 22:09:18 577

空空如也

空空如也

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

TA关注的人

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