自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎来到Aff ''的QQ空间

你是我的文艺复兴

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

原创 Romantic world is worth being alone

需要不断进行审视,和前一阶段的自己相比,能力在哪方面有提高,哪些地方不足,在接下来一段时间,给自己定的目标又是什么?2021.4.25 是2020年7月22日入职,已经工作9个月啦,从一开始对于业务代码一头雾水,到现在独立完成平台的项目,值得夸奖。 平台的框架较为简单,而且python也好上手,相对的,学校经常用的C/C++,现在也忘的差不多了,总是陷入能力在倒退的一种惶恐。 好消息是,马上就可以用go啦,做一个新的东西出来,又可以学到新的东西啦,针不戳!(๑•̀ㅂ...

2021-04-25 14:28:36 461

原创 PostgreSQL 关系型数据库入门

1. 关系型数据库与非关系型数据:Nosql指的是非关系型数据库,全称是Not Only Sql。 常见的关系型数据库有:Oracle、MySql、SQLServer、PostgreSQL; 常见的NoSql数据库:MongoDB、Redis、Memcache;具体优劣可参考 ????博客:https://blog.csdn.net/jaryle/article/details/92806662数据库特点可参考????博客:https://blog.csd...

2021-09-04 14:02:41 1471

原创 【Linux】awk命令

awk语言最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。awk命令格式:awk'{pattern + action}'{filenames}pattern表示awk在数据中查找的内容,而 action是在找到匹配内容时所执行的一系列命令。其中$0 表示整个当前行$1 每行第一个字段NF...

2021-04-24 10:38:46 141

原创 python中调用requests库来模拟request进行单测

通过postman可以直接获取请求代码,包括参数!比如要模拟向百度发送请求

2020-11-13 14:49:51 168

原创 Epoll底层实现原理

Epoll采用多路复用技术(可以监听多个文件描述符),相对于select和poll效率提高了很多;一.Epoll功能实现原理Epoll的功能由以下三组函数实现:A.int epoll_creat(int size); 生成一个epoll专用的文件描述符,在Linux2.6内核之后,使用红黑树管理所有的文件描述符; size参数只是应用程序向操作系统提的建议,操作系统并不一定生成size大小的epoll例程;【epoll例程指保管文件描述符的空间】 当创建好epoll句柄后,它...

2020-08-23 00:54:02 1154

原创 Tornado框架基础学习

Tornado是一种 Web 服务器软件的开源版本。它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个理想框架。 Tornado默认是单进程单线程。实时的web特性通常需要为每个用户一个大部分时间都处于空闲的长连接. 在传统的同步web服务器中,这意味着需要给每个用户分配一个专用的线程,这样的开销是十分巨大的.为了减小对于并发连接需要的开销,Tornado使用了一...

2020-08-02 00:07:02 314

原创 【makefile】makefile实际用法/写法

makefile:makefile通过编译和链接来运行程序;陈浩老师有一篇博客在makefile原理这块写的很清楚:https://blog.csdn.net/haoel/article/details/2886编译:源文件编译成中间代码文件,在Window下就是.obj文件,Unix下是.o文件,即Object File链接:把大量的Object File合成执行文件我有一篇博客...

2020-01-05 22:59:45 162

原创 【C++】实现单例模式 [懒汉模式、饿汉模式]

单例模式:保证一个类只被实例化一次!单例模式有懒汉和饿汉两种模式;懒汉模式:第一次用到类的时候再去实例化;适合在访问量较小的时候使用; 【时间换空间,懒汉模式本身是线程不安全的!】饿汉模式:类定义的时候就初始化;由于要进行线程同步,所以在访问量较大或可能访问的线程较多的情况下使用 【空间换时间,安全!】< 饿汉...

2019-09-06 15:29:38 430

原创 【内存重叠】memcpy函数和memmove函数的实现

memcpy函数:从源内存地址的起始位置开始拷贝n个字节到目标内存地址void *memcpy(void *dest,const void *src,size_t n){ char *tmp = (char *)dest; char *s = (char *)src; while(n--) { *tmp++ = *s++; } return dest;}strcpy函...

2019-09-06 13:53:05 165

原创 【LeetCode 135】分发糖果 — C++

老师想给孩子们分发糖果,有 N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。示例2:...

2019-08-12 13:46:59 652

原创 【LeetCode 322、518】零钱兑换、零钱兑换 II — C++

LeetCode 322 零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amo...

2019-08-12 10:49:21 350

原创 读书笔记:《Linux内核设计与实现》第七章 —— “中断和中断处理”

在第七章中,主要对中断和中断处理进行了介绍。操作系统的任务是对计算机硬件和软件进行管理,内核是操作系统的核心,它负责管理系统进程、内存、设备驱动程序、文件和网络系统,其中就需要做到对计算机的硬件设备进行有效管理。要进行管理就必须进行交互。那么内核又是如何使用中断处理函数来处理对应中断?7.1 中断 从物理学角度来看,中断是一种电信号,由硬件设备产生发送给处理器,处理器接收到中断后...

2019-07-29 19:17:47 249

原创 读书笔记:《Linux内核设计与实现》第五章 —— “系统调用”

目录5.1与内核通信5.2API、POSIX和C库5.3系统调用5.4系统调用处理程序5.5实现系统调用5.6系统调用上下文 在第五章中,讲述了系统调用究竟是什么?以及Linux内核如何实现系统调用,以及执行系统调用的连锁反应:陷入内核——>传递系统调用号和参数——>执行正确的系统调用函数——>把返回值带回用户空间。 内核提供了用...

2019-07-20 21:27:47 192

原创 读书笔记:《Linux内核设计与实现》第三章 —— “进程管理”

目录3.1进程3.2进程描述符及任务结构3.3进程创建3.4线程在Linux中的实现3.5进程终结 在第三章中,主要考察了操作系统的核心概念——进程。以及Linux如何存放和表示进程(用task_struct和thread_info),如何创建进程(通过fork(),实际上最终是clone()),如何把新的执行映像装入到地址空间(通过exec()系统调用族),如何表示...

2019-07-19 15:44:23 282 2

原创 【网易】矩形重叠 、牛牛的背包、小易的字典 — C++

矩形重叠:题目描述:平面内有n个矩形, 第i个矩形的左下角坐标为(x1[i], y1[i]), 右上角坐标为(x2[i], y2[i])。 如果两个或者多个矩形有公共区域则认为它们是相互重叠的(不考虑边界和角落)。 请你计算出平面内重叠矩形数量最多的地方,有多少个矩形相互重叠。 输入描述:输入包括五行。第一行包括一个整数n(2 <= n <= 50), 表示矩形的个...

2019-07-05 20:47:20 1657 1

原创 【网易】牛牛找工作 — C++

利用map映射实现 //map会对插入数据进行排序题目描述:为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。输入描述:每个输入包含一个测试用例。每个测试...

2019-07-04 11:27:23 607

原创 【LeetCode 1】两数之和 — C++

给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。方法一://暴力法class Solution {public: vector<int> twoSum(vector<int>& nums...

2019-07-01 17:58:56 130

原创 【位运算】位运算判断奇偶数、位运算求和、位运算求平均数、位运算求二进制1的个数

位运算判断奇偶数: 2,4,6,8,10这样的数转化为二进制是10,100,1000,10000,将其减1后做与运算为0;x & (x-1) == 0 //偶数x & (x-1) != 0 //奇数位运算求平均数:int f(int x,int y){ return (x & y) + ((x ^ y) >> 1); }...

2019-06-27 22:58:33 893

原创 【数据结构】二叉查找树(BST树)的构建、查找、插入、删除操作

二叉查找树又叫二叉排序树、二叉搜索树;二叉查找树其实是数据域有序的二叉树,即树上的每个节点都满足左子树上结点小于等于根节点,右子树上结点大于等于根节点数值; Ps:BST树中不能包含重复元素二叉树的操作包含建树、查询、删除、插入结点;构建BST树架构typedef int KeyType;typedef struct BstNode{ BstNode *leftch...

2019-06-26 18:22:23 490

原创 【LeetCode 946】验证栈序列

给定 pushed 和 popped 两个序列,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3), push(4...

2019-05-28 17:40:00 137

原创 【LeetCode121、122】买卖股票的最佳时机、买卖股票的最佳时机 II

LeetCode 121 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候...

2019-05-28 17:00:48 141

原创 【LeetCode 144、94、145、102、107】二叉树的前序遍历、中序遍历、后序遍历、层次遍历 [递归、非递归]

LeetCode 144 前序遍历递归遍历:class Solution {public: vector<int> vec; vector<int> preorderTraversal(TreeNode* root) { if(root == NULL) { return vec;...

2019-05-24 20:28:35 275

原创 【LeetCode 15、16】三数之和、最接近的三数之和

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]class Sol...

2019-05-17 18:58:33 137

原创 【LeetCode 14】最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。方法1:两层循环逐个比较,注意循环条件!class Solution {public:...

2019-05-13 16:51:24 119

原创 【LeetCode 217、219、220】存在重复元素、存在重复元素 II、存在重复元素 III

存在重复元素:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true方法1:利用vecto...

2019-05-12 13:37:56 156

原创 【LeetCode 148】排序链表

在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5借助一个排序算法来进行实现,因为要求在O(n log n)时间复杂度下...

2019-05-11 10:28:52 127

原创 缺失的括号+括号匹配深度

缺失的括号题目描述一个完整的括号字符串定义规则如下:1、空字符串是完整的。2、如果s是完整的字符串,那么(s)也是完整的。3、如果s和t是完整的字符串,将它们连接起来形成的st也是完整的。例如,"(()())", ""和"(())()"是完整的括号字符串,"())(", "()(" 和 ")"是不完整的括号字符串。牛牛有一个括号字符串s,现在需要在其中任意位置尽量少地添加括号,将...

2019-05-10 20:07:47 343

原创 【LeetCode 3】无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "...

2019-05-10 19:26:21 107

原创 【LeetCode 46】全排列

给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]class Solution {public: vector<vector<int>> permute(vector&l...

2019-05-02 21:50:50 130

原创 【LeetCode 39、40】组合总和、组合总和 II

39、组合总和问题描述: 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。说明: 所有数字(包括 target)都是正整数; 解集不能包含重复的组合。 class Solution {public: ...

2019-04-21 22:17:31 151

原创 【LeetCode 160】相交链表[3种解法]

题目描述:编写一个程序,找到两个单链表相交的起始节点。1.暴力求解:一个个进行对比,找到第一个相等的节点就是交点ps:效率低/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : va...

2019-04-19 19:10:44 478 1

原创 【LeetCode 5】最长回文子串[中心法、动态规划]

题目描述:给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。1.中心法:i作为回文串的中心字母,j作为回文串的半径进行遍历;class Solution {public: string longestPalindrome(string s) { if(s.empty()) return s; int len...

2019-04-13 23:08:12 122

原创 疯狂队列

题目描述:小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大的顺序来进行列队。现在给出n个学生的身高,请计...

2019-04-12 18:27:54 322

原创 【LeetCode 557】反转字符串中的单词 III

要对字符串中单词进行反转,首先要将字符串中单词进行分割;之后对单词进行逆转方法1:结合栈对字符串进行分割 ,当不出现空格时,将字符不断入栈;当遇到空格,就将栈内字符出栈,即可完成逆置;class Solution {public: string reverseWords(string s) { stack<char> ans; int...

2019-04-11 19:49:24 137

原创 【LeetCode 230】二叉搜索树中第K小的元素

1.二分法 二叉搜索树特点是左节点值小于根节点,而右节点值大于根节点;利用这个特性可以采用二分法,将整个树的节点分为左节点和右节点两部分,当k值等于左节点值+1时,说明此时root为要求的第k小元素;当k值小于左节点值时,说明第k小元素位于根节点左侧;当k值大于左节点时,说明第k小元素位于根节点右侧;之后递归,在满足条件的左右两侧节点中进行遍历划分,直到求出第k小。/** * D...

2019-04-10 17:46:59 645

原创 【LeetCode 78】子集树/求子集 [回溯、位运算]

回溯法:nums[1,2,3],可以对数字1,2,3选择进行处理,数字1,我们有两个选择,放进集合中或者不在集合中;class Solution {public: void dfs(vector<int>& nums,int index,vector<int>& path,vector<vector<int>>&a...

2019-04-05 11:34:26 221

原创 【LeetCode 236】C++实现递归、非递归求二叉树的最近公共节点

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */c...

2019-03-30 19:50:10 346

原创 【数据结构】二叉搜索树

#include<windows.h>#include<assert.h>#include<limits.h>#include<iostream>#include<vector>#include<time.h>#include<stack>#include<queue>using ...

2019-03-20 00:49:39 133

原创 【数据结构】线索二叉树

typedef char ElemType;#define END '#'typedef enum{LINK = 0,THREAD = 1} PointerTag;typedef struct BiThrNode{ BiThrNode *leftchild; BiThrNode *rightchild; PointerTag Ltag,Rtag; ElemType dat...

2019-03-18 23:59:10 182

原创 【数据结构】树的非递归遍历、层次遍历、第K层遍历规则

#include&lt;windows.h&gt;#include&lt;assert.h&gt;#include&lt;limits.h&gt;#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;time.h&gt;#include&lt;stack&gt;#include &lt;queue&gt;

2019-03-01 20:19:39 248

空空如也

空空如也

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

TA关注的人

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