自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 brpc

1.官网:https://github.com/apache/incubator-brpc 2.安装(说明):https://github.com/apache/incubator-brpc/blob/master/docs/cn/getting_started.md 中文说明书 https://www.bookstack.cn/read/incubator-brpc/48b8de09ff568001.md#%E8%AF%95%E4%B8%80%E4%B8%8B! https://github.com/ap

2021-04-29 11:44:01 347

原创 待看+复现力扣

https://www.cnblogs.com/wangxf2019/p/12089149.html https://blog.youkuaiyun.com/hello_my_coder/article/details/105101655 https://blog.nowcoder.net/n/934754a0d0c848168597bc0fdf4e97ff https://juejin.im/post/5cab4ae46fb9a0688d2e24b4

2020-07-09 17:45:01 373

原创 C++学习锁

线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能与性能成反比。不过我们一般不使用递归锁(C++标准库提供了std::recursive_mutex),所以这里就不推荐了。 互斥锁(Mutex) 互斥锁用于控制多个线程对他们之间共享资源互斥访问的一个信号量。也就是说是为了避免多个线程在某一时刻同时操作一个共享资源。例如线程池中的有多个空闲线程和一个任务队列。任何是一个线程都...

2020-07-07 21:56:47 2463

原创 k-means 聚类方法,转 4/15

k-means 聚类 聚类算法有很多种,K-Means 是聚类算法中的最常用的一种,算法最大的特点是简单,好理解,运算速度快,但是只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几类。 K-Means 聚类算法的大致意思就是“物以类聚,人以群分”: 首先输入 k 的值,即我们指定希望通过聚类得到 k 个分组; 从数据集中随机选取 k 个数据点作为初始大佬(质心); 对集合中每一个小弟,...

2020-07-07 21:56:38 420

原创 设计和实现一个 LRU (最近最少使用) 缓存机制

运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值留出空间。 你是否可以在 O(1) 时间复杂度内完成这两种操作? 实例: LRUCache

2020-07-07 21:56:16 1266

原创 7/2,刷题

最长回文子串, c采用中心往两边扫的方法 string longestPalindrome(string s) { int start = 0; int end = 0; int mlen = 0; for (auto i = 0;i<s.size();i++) { int len1 = getLen(s, i, i); int len2 = getLen(s, i, i+1); /.

2020-07-06 21:00:38 154

原创 重启,随机刷6/17

编辑距离 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。 若这两个字符串没有公共子序列,则返回 0。 示例 1: 输入:text1 = “abcde”, text2 .

2020-06-18 19:43:13 184

原创 动态规划 4/09

1 爬楼梯问题,爬一阶与两阶 /** * 爬楼梯问题,爬一阶与两阶 */ int getNFloor(int n) { std::vector<int> dp(101,0); dp[0] = 0; dp[1] = 1; dp[2] = 2; for (int i = 3; i <= n; i++) { dp[i] = dp[i-1] + dp[i-2];...

2020-04-10 10:52:42 146

原创 清明假期刷题,爬山 4/56

如上图 1 无重复字符子串,主要思想是 map 记录每个字符出现的长度,一定要要求是1次。出现一个记录一个 双指针滑动窗,如果第一次出现就加上,然后于 result 比较长度,长的就覆盖 result。当遇到相同元素的时候 就进入循环 begin 前移,在移动中,把原来的元素一一在 map 里--,直到当前元素在 map 中出现次数为1 string getLongestSubstr(stri...

2020-04-07 10:29:33 147

原创 随手写 4/2

4 字符串的切割 # include<sstream> vector<string> strSplit(string str, char delim) { std::stringstream ss(str; std::vector<string> res; string item; while(getline(ss, item, delim)) { ...

2020-04-03 10:29:03 144

原创 二叉搜索树 4/1

爬楼梯问题 /** * 爬楼梯,一次爬一节或者两节,N 节楼梯爬法 */ int getFloor(int n) { if (n==1) { return 1; } if(n ==2){ return 2; } int a[100]; a[0]=0; a[1]=1; a[2] = 2; for (int i=3;i<=n;i++){ a[i] = a[...

2020-04-02 09:07:42 138

原创 二分查找与二叉排序树 3/31号

1.二分查找 bool binary_search(std::vector<int> &nums, int key) { int begin = 0; int end = nums.size()-1; int mid = 0; while( begin <= end) { int mid = (end+begin)/2; if(key == nums[mi...

2020-04-01 10:32:31 229

原创 二叉树 3/29

1 N 叉树最大深度 /** * N叉树深度 */ int getDepth(TreeNode* root) { if(!root) { return 0; } priority_queue<int, std::vector<int>, less<int>> big_heap; for (auto i:root->children) {...

2020-03-30 09:34:21 144

原创 二叉树 3/28

今日刷题 二叉树非递归 前序中序后续 参考https://www.cnblogs.com/hengzhezou/p/11027190.html /** * 二叉树的前序非递归遍历,用栈来操作先pop 后访问右子树 */ typedef struct TreeNode { int val; struct TreeNode* left; struct TreeNode* right; T...

2020-03-29 16:40:29 154

原创 回溯与递归+分治 3/26

今日:刷题真痛苦 八皇后 求逆序数 树的字段和 上代码 /** * 八皇后问题,初始化,放,递归搜索 */ /** * 初始化一个 queen,mark 表示一个棋盘 N*N,location 表示一个queen的点状图,result 存储最终结果 * [".Q..", location是这种点阵表达的,一个状态.初始都是"." "...Q", "Q...", ...

2020-03-27 11:22:02 146

原创 回溯,递归 3/25

今日刷题记录 二叉树的从根到叶子节点路径,以及路径字面值的求和 递归思想,可以获取所有节点路径 std::vector<std::vector<int>> getTreeNum(Btree &tree) { std::vector<std::vector<int>> result; std::vector<int> item;...

2020-03-26 13:43:26 120

原创 回溯与递归 3/24

昨天学习递归跟回溯,感觉还是有些吃力 /** 求一个序列的所有子集,序列中元素无重复,可以使用二进制思想,也可以使用回溯跟递归,放该元素,与不放该元素 */ /*回溯思想/ std::vector<std::vector<int> > getSubSet(std::vector<int> &nums) { std::vector<std::v...

2020-03-25 10:02:50 142

原创 二叉堆

堆的调整时间复杂度 logn 大顶堆 std::priority_queue big_heap;(默认是大顶堆) std::priority_queue<int,std::vector,std::less> big_heap1;(大顶堆) std::priority_queue<int, std::vector,std::greater> small_heap;(小顶堆) ...

2020-03-24 11:56:50 133

原创 栈与队列 3/23日

栈来实现队列,双栈,data 先倒腾到 temp,temp 压入元素,再把 temp 倒腾到 data 栈里。实现队列 stack 常用函数 s.empty(); //如果栈为空则返回true, 否则返回false; s.size(); //返回栈中元素的个数 s.top(); //返回栈顶元素, 但不删除该元素 s.pop(); ...

2020-03-24 10:01:04 153

原创 链表系列 3/21日

今日刷题: K 个链表合并两种解法 链表排序 nlogn 时间复杂度 linkList Solution::mergeKlList(vector<linkList> &vec) { Node* head = new Node(0); Node* p = head; //方法一:用vector 实现每个节点存储,sort 排序 knlogkn v...

2020-03-23 09:47:53 129

原创 链表系列 3/20日

typedef struct Node { int data; struct Node *next; struct Node *random; Node(int d):data(d), next(nullptr),random(nullptr){} }Node, *linklist; /** * 把链表按照x划分,比 X 小的放前面,重点是用两个临时的头结点操作,注意morelist...

2020-03-21 10:48:12 107

原创 二叉树

二叉树系列,主要是递归思想 typedef struct BitTree { char data; struct BitTree *lchild,*rchild; BitTree(char d):data(d),lchild(nullptr),rchild(nullptr){} }BNode, *Btree; Btree *creat(Btree &tree) { char ch...

2020-03-20 14:23:51 112

原创 链表系列 3/19日

第一篇刷题思考 // An highlighted block typedef struct Node { int data; struct Node* next; Node(int d):data(d),next(nullptr){} }Node, *list; /* 头插法,生成的是倒序的 list */ list creatByHead(int* arr, int len) { ...

2020-03-20 13:39:51 123

空空如也

空空如也

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

TA关注的人

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