- 博客(122)
- 收藏
- 关注

转载 置顶:待整理 STL
首先来看一看int、long、long long的取值范围int 所占字节数为:4 表示范围为:-2147483648~2147483647short int 所占字节数为:2 表示范围为:-32768~+32767long 所占字节数为:4 表示范围为:-214...
2018-04-26 20:22:14
223
转载 线程的同步、互斥:信号量、互斥锁、条件变量
https://www.cnblogs.com/alinh/p/6905221.html1 信号量信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。信号量可以分为几类:² 二进制信号量(binary semaphore):只允许信号量取0或1值,其同时只能被一个线程获取。² 整型信号量...
2018-07-25 10:03:22
705
转载 linux-理解mmap函数
https://blog.youkuaiyun.com/iter_zc/article/details/44308729稍后读:https://www.cnblogs.com/huxiao-tee/p/4660352.htmlhttps://blog.youkuaiyun.com/luckywang1103/article/details/50619251https://blog.youkuaiyun.com/u0146...
2018-07-17 18:03:27
711
转载 多进程-fork() 父进程子进程 文件描述符继承问题
http://blog.51cto.com/keren/170822在C程序中,文件由文件指针或者文件描述符表示。ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UNIX的I/O函数(open, close, read, write, ioctl)使用文件描述符。下面重点来说下,文件描述符是如何工作的。 文件...
2018-07-16 10:56:16
4644
转载 C++设计模式——观察者模式
https://blog.youkuaiyun.com/u012611878/article/details/72859047观察者模式包括一下角色:Subject: 目标ConcreteSubject: 具体目标Observer: 观察者ConcreteObserver: 具体观察者观察者模式特点1、将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关相关对象间的一致性。我们不希...
2018-07-12 19:46:11
297
转载 算法-拓扑排序算法——有向图有环无环
判定有向图是否包含环。https://blog.youkuaiyun.com/qq_35644234/article/details/60578189拓扑排序的实现步骤在有向图中选一个没有前驱的顶点并且输出从图中删除该顶点和与它有关的边重复上述两步,直至所有顶点输出,或者当前图中不存在无前驱的顶点为止,后者代表我们的有向图是有环的,因此,也可以通过拓扑排序来判断一个图是否有环。拓扑排序的实现方法邻接表:行号代...
2018-07-12 14:05:18
6056
转载 C++设计模式——单例模式
1、单例模式转载自:https://blog.youkuaiyun.com/hj605635529/article/details/70172842单例模式的适用场景(1)系统只需要一个实例对象,或者考虑到资源消耗的太大而只允许创建一个对象。(2)客户调用类的单个实例只允许使用一个公共访问点,除了该访问点之外不允许通过其它方式访问该实例 (就是共有的静态方法)。单例模式的扩展允许可变数目的实例,使用与单例控制...
2018-07-11 18:30:01
156
原创 校招真题: 水仙花数
题目描述春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。输入描述:输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。输出描述:对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,...
2018-07-10 14:21:30
186
原创 校招真题:分苹果——快排qsort
题目描述n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 ...
2018-07-10 10:35:25
223
转载 sizefof与strlen对比
Sizeof与Strlen的区别与联系一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分...
2018-07-09 09:23:41
434
转载 Linux >&的用法 文件重定向
https://blog.youkuaiyun.com/qq_35242986/article/details/73772212linux重定向中&>和>&是一个意思,是“复制一个文件描述符”的意思。一、linux重定向的设备代码 标准输入(stdin) 代码为 0 ,实际映射关系:/dev/stdin -> /proc/self/fd/0 标准输出(stdout)代码...
2018-07-09 09:20:51
1139
转载 深度理解select、poll和epoll
转载:https://blog.youkuaiyun.com/davidsguo008/article/details/73556811 在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占...
2018-07-08 16:24:31
167
转载 算法-贪心算法-二分查找
1、网易2017内推C++笔试题目https://blog.youkuaiyun.com/damotiansheng/article/details/521604962、贪心算法https://blog.youkuaiyun.com/thesnowboy_2/article/details/73385652题目描述牛牛和 15个朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个...
2018-07-06 14:59:50
1151
转载 算法-Trie树 -字典树
https://www.cnblogs.com/TheRoadToTheGold/p/6290732.html1、单词是否出现/*查询单词是否整体出现 trie tree的储存方式:将字母储存在边上,边的节点连接与它相连的字母 trie[rt][x]=tot:rt是上个节点编号,x是字母,tot是下个节点编号*/#include<cstdio>#include<io...
2018-07-04 15:27:25
224
转载 C++的cout输出小数的精度控制
c++ cout 输出小数的精度cout.flags(ios::fixed);cout.precision(4); //设置输出精度printf("%.4f\n",XXX); 精度输出float : 单精度浮点数double : 双精度浮点数两者的主要区别如下: 01.在内存中占有的字节数不同 单精度浮点数在机内存占4个字节 双精度浮点数在机内存占8个字节 02.有效数字位数不同 ...
2018-06-28 15:12:11
14041
转载 关于同步、异步与阻塞、非阻塞的理解
https://www.cnblogs.com/Anker/p/5965654.html1、前言 前一段时间出去面试,被问到同步、异步与阻塞、非阻塞的区别。我一时半会没有想出来,作为一个工作三年的人来说,实在很惭愧。我当时理解同步、异步属于两个进程中间的协作关系,例如使用浏览器访问一个网站,需要多次请求服务端,才能加载完整个页面的内容。同步的操作如下:浏览器首先发送第一个请求,等待服务器回复后,...
2018-06-25 13:55:02
191
转载 [C++] STL 迭代器失效问题
https://blog.youkuaiyun.com/codercong/article/details/52065130之前看《C++ Primier》的时候,也解到在顺序型窗口里insert/erase会涉及到迭代器失效的问题,并没有深究。今天写程序的时候遇到了这个问题。1 莫名其妙的Erase 最初我的程序是酱紫的,别说话,我知道这样是有问题的,可这样是最直观的想法 int arr[]={0...
2018-06-21 14:42:58
360
转载 [c++] vector中insert()的用法详解
iterator insert( iterator loc, const TYPE &val ); void insert( iterator loc, size_type num, const TYPE &val ); void insert( iterator loc, input_iterator start, input_iterator end ); insert()...
2018-06-21 14:39:48
111769
转载 调试方式: freopen函数
#include<cstdio>FILE* freopen(const char *, const char *, FILE*);调试时写入freopen("XXX.txt", "r", stdin);代替调试输入关闭freopen的方式:https://blog.youkuaiyun.com/u013446688/article/details/44873929在DOS/Win中可以使用CON:...
2018-06-21 12:42:59
352
原创 笔试算法: 地狱逃脱 --深度优先遍历
问题描述http://www.nowcoder.com/questionTerminal/0385945b7d834a99bc0010e67f892e38给定一个 n 行 m 列的地牢,其中 ‘.’ 表示可以通行的位置,’X’ 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,...
2018-06-20 22:22:02
529
转载 背包问题——动态规划
https://www.cnblogs.com/Mychael/p/8282894.html01背包有一个体积为V的背包,有n个物品,每个物品都有体积vi和价值wi,在背包体积范围内,求能桌下的最大价值。这个问题中每个物品只能用一次。设dp[i][j]表示用前i个物品装体积为j的背包。那么第i个物品要么装要么不装:1、如果不装,第i个物品和没有一样,dp[i][j]=dp[i-1][j]2、如果装...
2018-06-18 21:17:44
350
原创 剑指65:不用加减乘除做加法-位运算
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路:加和分为加和和进位 加和通过异或 进位通过与运算和左移 多次进位需要循环 循环结束条件是当每次与获得的进位结果全0class Solution {public: int Add(int num1, int num2) { int sum,temp; ...
2018-05-25 12:56:20
179
转载 编码:Unicode与UTF-8
Unicode与UTF-8互转(c语言和lua语言)https://www.cnblogs.com/lxjshuju/p/6812387.htmlUincode中文2字节 UTF-8中文3字节1. 基础1.1 ASCII码我们知道, 在计算机内部, 全部的信息终于都表示为一个二进制的字符串. 每个二进制位(bit)有0和1两种状态, 因此八个二进制位就能够组合出 256种状态, 这被称为一个字节(...
2018-05-24 13:06:31
412
原创 剑指63:股票的最大利润
思路: 对于多于2个正数的数组 在遍历到第k个位置时,前k-1个位置中必须找到最小位置 并且判定当前是否具有最大利益。// 面试题63:股票的最大利润// 题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖交易该股// 票可能获得的利润是多少?例如一只股票在某些时间节点的价格为{9, 11, 8, 5,// 7, 12, 16, 14}。如果我们能在价格为5的时候买入并在价格为...
2018-05-15 09:09:31
180
原创 剑指62:圆圈中最后剩下的数字
题目: 0~n-1的n个数排成一个圆圈,从0开始每次从这个圆圈删除第m个数字,然后从删除的数字的下一个数字开始继续直到剩最后1个数字位置。方法1:用list模拟圆圈 的环形链表 每次循环到end()时都手动更新到begin() 效率不高 STL list使用https://blog.youkuaiyun.com/zhouzhenhe2008/article/details/7742874...
2018-05-11 21:18:35
132
转载 STL 容器删除元素的陷阱
在网上看到有人总结如下两条:1. 对于节点式容器(map, list, set)元素的删除,插入操作会导致指向该元素的迭代器失效,其他元素迭代器不受影响2. 对于顺序式容器(vector,string,deque)元素的删除、插入操作会导致指向该元素以及后面的元素的迭代器失效https://www.cnblogs.com/Yogurshine/p/4030728.html...
2018-05-11 20:55:19
414
原创 剑指60:n个骰子的点数
题目描述:n个骰子 打印出点数为S时的可能出现的值得概率思路:设置两个数组轮换 每个数组的第n个位置代表次数为n的次数 对于下一轮的循环中数组第n个位置 是上一轮记录获得的数组中n-1~n-6上和的总和void PrintProbability_Solution2(int number){ ...
2018-05-11 19:58:14
149
原创 剑指61:扑克牌顺子
题目描述: 从扑克牌中抽5张,判定是否连续,其中大小王为0,A为1,JQK分别为11-13.思路: 对输入的数组进行升序排列,计算0的个数和非零数间的间隔之和class Solution {public: bool IsContinuous( vector<int> numbers ) { if(numbers.empty()||numbers.s...
2018-05-11 15:55:39
189
原创 剑指59:滑动窗口的最大值
题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5};针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1},{2,[3,4,2],6,2,5,1}, {2,3,[4,2...
2018-05-10 19:45:59
171
原创 剑指58:翻转单词顺序列——左移字符串
题目描述“student.a am I”,正确的句子应该是“I am a student.”。一一的翻转这些单词顺序思路:先整体翻转 再局部反转class Solution {public: void Reverse(int start,int end,string &str){ while(start<end) { ...
2018-05-10 13:24:53
167
原创 剑指57:和为S的数字-----和为S的连续正数序列
题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。思路:两个指针指向收尾,对于一个递增数组而言,乘积最小和为S的理想情况是左侧保持最小, 对于两个指针位置的数之和 大于S则将尾左移,小于S则将首右移 class Solution {public:...
2018-05-09 21:07:44
185
原创 剑指56:数组中只出现一次的数字——异或——位运算
题目描述:数组中只出现一次的数字一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。空间复杂度O(1)时间复杂度O(n)。思路: 一个整型数组只有一个数字出现一次 其他出现2次 考虑异或全部得到唯一的这个数字。 同理,将问题分组成2组,每组保证有一个出现1次的数,且每组中其他数都出现2次。 考虑通过数某一位是否为1...
2018-05-09 10:13:03
251
原创 剑指55:二叉树的深度---平衡二叉树判定
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路:每个根节点的深度都是左右子树最大值加1/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left...
2018-05-08 19:18:15
159
原创 剑指54:二叉搜索树的第K个结点——中序遍历
题目描述:给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 24 6 8 中,按结点数值大小顺序第三个结点的值为4。思路:二叉搜索树 使用中序遍历时从左到右是升序排列的一系列数,此时第K大就是从左到右第k个,因此用中序遍历。/*struct TreeNode { int val; st...
2018-05-08 18:55:55
470
原创 剑指53:数组在排序数组中出现的次数——折半查找——拓展(2)(3)
折半查找专场——————————————————————————————————————题目描述1统计一个数字在排序数组中出现的次数。思路:通过折半查找找到k开始和结束的位置。O(logn)class Solution {public: int GetFirstK(vector<int> data,int k,int start,int end){ //折半查...
2018-05-08 10:06:12
221
转载 二叉树中两个节点的最近公共祖先节点
题目:求二叉树中两个节点的最近公共祖先节点https://blog.youkuaiyun.com/xyzbaihaiping/article/details/52122885一、该二叉树为搜索二叉树搜索二叉树的特点:任意一个节点的左子树的所有节点值都比该节点的值小,其右子树的所有节点值都比该节点的值大。解决该问题方法:从树的根节点开始和两个节点作比较,如果当前节点的值比两个节点的值都大,则这两个节点的最近公共...
2018-05-07 20:46:13
2249
原创 剑指52:两个链表的第一个公共结点
题目描述输入两个链表,找出它们的第一个公共结点。思路:2个单链表 先知道两者长度差值 然后长的先遍历到差值的起始位置 再同时后移。时间O(m+n) /*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {pub...
2018-05-07 20:32:10
133
转载 排序算法—归并排序
https://www.cnblogs.com/chengxiao/p/6194356.html归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之 可以看到这种结构很像...
2018-05-07 15:32:15
137
原创 剑指51:数组中的逆序对——递归方式的归并排序
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5 对于%100的数据,size<=...
2018-05-07 14:22:40
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人