- 博客(24)
- 收藏
- 关注
原创 智能指针主动释放多线程问题
class A {public: A() { cout << "A" << endl; } ~A() { cout << "~A1" << endl; sleep(5); cout << "~A2" << endl; }};int main(){ std::unique_ptr<A> m_A = make_un.
2022-02-26 11:15:13
447
原创 微软C++面试过程
一面: 1)了解项目; 2)new 与 malloc的区别,为什么new会调用构造函数。 3)虚函数与纯虚函数的区别。 4)有什么防止内存泄漏的办法 5)有没有什么办法修改const值 6)C++的内存布局算法:1)给定一个二叉搜索树,和一个val,找出与val值最接近的节点;2) 给定一个字符串 1 2 4 5 | 6 7 9 <-&g...
2021-08-23 21:00:35
571
转载 Efficient string concatenation in C++
https://stackoverflow.com/questions/611263/efficient-string-concatenation-in-c
2021-07-28 16:59:12
116
原创 84. 柱状图中最大的矩形
题目链接:https://leetcode-cn.com/problems/largest-rectangle-in-histogram/方法一:暴力法柱子i和j范围内的最大矩形,我们可以遍历i至j去查找范围内最小的高度H,宽L为柱子i和j的距离。H*L就是柱子i和j范围内的最大矩形。然后我们再遍历所有柱子的组合,最后在所有的情况中得到最大值。1. class Solu...
2019-10-31 21:41:27
177
原创 49. 字母异位词分组
题目链接:https://leetcode-cn.com/problems/group-anagrams/方法一:创建map,其中key为字符串的字母,value为相同字母组合的字符串列表。遍历strs,存入map中。最后再遍历map转换成vector形式。1. class Solution { 2. public: 3. vector<vecto...
2019-10-31 21:39:41
137
原创 560.和为K的子数组
题目链接:https://leetcode-cn.com/problems/subarray-sum-equals-k/方法一:暴力法遍历所有的可能性for (start = 0;start < nums.size(); ++start) { for (end = start; end < nums.size(); ++end) {...
2019-10-24 14:43:05
256
转载 图说设计模式
一个比较好的讲解设计模式的网址:https://design-patterns.readthedocs.io/zh_CN/latest/index.html
2019-08-22 21:48:28
231
原创 Linux线程基本函数
pthread_create头文件 : #include <pthread.h>函数定义:int pthread_create(pthread_t * thread,const pthread_attr_t * attr, void *(* start_routine)(void *),void * arg); 来自< http://pubs.ope...
2018-11-28 20:15:55
1494
原创 网络编程常用函数
socket()函数int socket(int protofamily, int type, int protocol);//返回sockfdsockfd是描述符。socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。这个socket描述字跟文...
2018-11-28 20:09:51
442
原创 git基本命令
文件操作 文件状态的查看 git status该命令可以显示当前仓内文件的状态。modified:文件被修改new file:新创建的文件deleted:文件被删除both modified:文件存在冲突,需要先解决冲突才能上传文件 文件暂存 git add <file>该命令将文件添加到暂存区。如果要全部添加至暂存区可以用 “.”...
2018-11-28 10:16:48
266
原创 Linux 和 vim 基本命令
LS 列出目录ls -a显示所有文件及目录。ls -l显示所有文件和目录,同时显示显示文件的属性。ll -l和-a的结合,显示所有文件(包括隐藏文件)和文件的属性。 cd :切换目录cd + Tab两次切换目录时不清楚当前目录有哪些文件的时候使用,可以不用先来再生cd。 MKDIR 创建一个新的目录mkdir -p tac /测试-p确保目录名称存在,不存在...
2018-11-28 09:50:27
311
原创 分数转小数
/*功能: 根据输入的分子与分母,输出计算结果。无限非循环小数,直接输出计算结果输入: denominator 分母 numerator 分子输出: decimaltostring 输出计算结果返回: -1 失败 0 成功*/int Calculate(const int numerator, cons...
2018-09-07 17:06:02
859
原创 git基本命令
1.文件操作1.1文件状态的查看 git status该命令可以显示当前仓内文件的状态。modified:文件被修改new file:新创建的文件deleted:文件被删除both modified:文件存在冲突,需要先解决冲突才能上传文件 文件暂存git add <file>该命令将文件添加到暂存区。如果要全部添加至暂存区可以用 “.”...
2018-09-07 11:49:26
266
原创 sql笔记
检索数据select检索不同的值distinct限制结果limit 第0行开始 limit 0,1 返回第一个注释-- # /* */排序数据order byselect * from orderitems order by order_item, quantity;先按照order_item排序,再按照quantity排序;默认升序,
2018-01-04 11:27:52
258
原创 堆排序
1.堆堆是一个数组,可以被看成一个完全二叉树。表示堆的数组A包括两个属性:A.length给出数组元素的个数,A.heap-size表示有多少个堆元素存储在该数组中。A[1..A.length]可能都有数据,但有效数据只存在A[1..A.heap-size]。一般的,树的根节点是A[1]。因此左孩子和右孩子可以表示成i*2、i*2+1;一般求左孩子和右孩子以内联函数或宏的方式实现。堆有
2017-11-27 21:50:08
255
原创 插入排序
插入排序,对于少量元素的排序是一个有效的算法。算法导论上的伪代码:INSERTION-SORT(A) for j = 2 to A.length key = A[j] i = j - 1 while i > 0 and A[i] > key A[i+1] = A[i]i = i - 1A[i+1] = key下标j指出正被插入的元素,for循
2017-11-27 16:16:42
243
原创 堆应用(最小的K个数)
最小的K个数输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。class Solution {public: vector GetLeastNumbers_Solution(vector input, int k) { if (input.size() < k || input.size() == 0)
2017-11-09 21:56:33
288
原创 单调栈
求比元素两边小的数如序列:3 2 4 1 5 7元素 左边 右边3 无 22 无 14 2 11 无 无5 1 无7 5 无解法:维护一个栈,栈内元素递增首先3进栈再2准备进栈,但此时栈内元素不是递增,3先出栈。因此2是3右边最近的比3小的元素。 同时
2017-11-08 20:09:38
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人