C/Cpp
文章平均质量分 88
小刀刀
while(1)
{
Thinking;
doing;
}
展开
-
微信后台 phxrpc (v0.8) 之 编译&&整体流程&&部分代码解析(一)
一.简介微信在2016年发布了一个RPC框架phxrpc,github地址是:phxrpc。号称微信后台很多地方都使用到了,看了下,代码总体来说比较简单,但是其中有一些很有意思的地方,后面慢慢讲。二.编译运行可以见微信文档[可能是phcrpc仅有的文档:)]:编译。此处自己来总结一下: PhxRPC必须依赖的第三方库只有Protobuf。在编译前,在third_party目录放置好protobuf原创 2017-02-15 22:20:07 · 8728 阅读 · 2 评论 -
桶排序之后 --- > 基数排序
和桶排序一样,也不是基于比较的。基数排序一般用于整数的处理,它的基本原理是:一直想把它说的更白话一点,可是,哎。。。我们可以想象一下,如果现在只有几个各位数 2 6 3 7 ,那么装入数组后是 :修改相应的位置后:那么再由后往前扫描,7 -> 3 -> 6 -> 2对应到位置后为:2 3 6 7 已经排好序了。。。那么原创 2013-03-16 16:48:59 · 805 阅读 · 0 评论 -
二叉树的深度
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=21输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输入:第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n 接下来有n行,每原创 2013-03-19 08:02:12 · 1735 阅读 · 0 评论 -
丑数 问题
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=17把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。输入:输入包括一个整数N(1原创 2013-03-19 07:46:45 · 1935 阅读 · 1 评论 -
数字在排序数组中出现的次数
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=20统计一个数字在排序数组中出现的次数。输入:每个测试案例包括两行:第一行有1个整数n,表示数组的大小。1第二行有n个整数,表示数组元素,每个元素均为int。第三行有1个整数m,表示接下来有m次查询。1原创 2013-03-19 07:57:26 · 1813 阅读 · 0 评论 -
数组中的逆序对
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=19在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。输入:每个测试案例包括两行:第一行包含一个整数n,表示数组中的元素个数。其中1 第原创 2013-03-19 07:53:31 · 941 阅读 · 0 评论 -
所有员工年龄排序
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=16公司现在要对所有员工的年龄进行排序,因为公司员工的人数非常多,所以要求排序算法的效率要非常高,你能写出这样的程序吗?输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为一个整数n(1输入的第二行原创 2013-03-19 07:39:27 · 3877 阅读 · 0 评论 -
数组中只出现一次的数字
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。输入:http://ac.jobdu.com/problem.php?cid=1039&pid=22每个测试案例包括两行:第一行包含一个整数n,表示数组大小。2第二行包含n个整数,表示数组元素,元素均为int原创 2013-03-19 08:10:17 · 1140 阅读 · 0 评论 -
找到第一个只出现一次的字符
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=18在一个字符串(1输入:输入有多组数据每一组输入一个字符串。输出:输出第一个只出现一次的字符下标,没有只出现一次的字符则输出-1。样例输入:ABACCDEFF原创 2013-03-19 07:51:31 · 1856 阅读 · 0 评论 -
数组中出现次数超过一半的数字
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=12数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。输入:每个测试案原创 2013-03-18 09:17:30 · 874 阅读 · 0 评论 -
又见 AVL ( 平衡二叉树 )
最近变懒了,代码都懒得写,真无语,不过这个链接的AVL的代码还是不错的!http://blog.csdn.net/a_1_2_ab/article/details/6585823#include#include#define EH 0#define LH 1#define RH -1typedef struct Bitree{ int data; int bf;转载 2013-03-19 09:19:00 · 1151 阅读 · 0 评论 -
和为S的连续正数序列
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=24小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的原创 2013-03-19 08:24:49 · 2815 阅读 · 0 评论 -
和为S的两个数字
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=23输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输入:每个测试案例包括两行:第一行包含一个整数n和k,n表示数组中的元素个数,k表原创 2013-03-19 08:18:55 · 1504 阅读 · 0 评论 -
最大子向量和
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=14HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天JOBDU测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应原创 2013-03-19 07:35:13 · 1277 阅读 · 0 评论 -
最小的K个数
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。输入:每个测试案例包括2行:第一行为2个整数n,k(1第二行包含n个整数,表示这n个数,数组中的数的范围是[0,1000 000 000]。输出:对应每个测试案例原创 2013-03-19 07:12:56 · 1071 阅读 · 0 评论 -
顺时针打印矩阵
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.输入:输入可能包含多个测试样例,对于每原创 2013-03-18 08:53:28 · 1258 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=9输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。输入:每个测试案例包括2行:第一行为1个整数n(1第二行包含n原创 2013-03-18 09:05:36 · 4093 阅读 · 0 评论 -
二叉树中和为某一值的路径
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=10输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。输入:每个测试案例包括n+1行:第一行为2个整数n,k(1原创 2013-03-18 09:08:51 · 1165 阅读 · 0 评论 -
翻转单词顺序
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=25JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识原创 2013-03-19 08:29:46 · 1818 阅读 · 0 评论 -
微信后台 phxrpc (v0.8) 之 Timer(二)
一.system_clock和steady_clock比较下面一段摘录 system_clock:就类似Windows系统右下角那个时钟,是系统时间。明显那个时钟是可以乱设置的。明明是早上10点,却可以设置成下午3点。 steady_clock:则针对system_clock可以随意设置这个缺陷而提出来的,他表示时钟是不能设置的。 steady_clock的实现是使用monotonic时间,而原创 2017-02-16 13:04:49 · 2854 阅读 · 0 评论 -
Makefile 实际用例分析(三) ------- 是用GUN automake 处理自己的工程
前面两篇已经说过了自己怎么去为一个工程写makefile:第一篇第二篇现在这一篇说的是怎么使用GNU的工具去写一个符合开源标准的Makefile呢!首先我觉你应该参考:AutomakeAutoconf这里就一步一步来解释:依然使用之前两篇中的例子ir_tree!还是先看看我的文件布局是怎么样的!顶层文件夹:相比之前原创 2013-12-08 15:06:51 · 8474 阅读 · 1 评论 -
Makefile 实际用例分析(一) ------- 比较通用的一种架构
这里不再说Makefile的基本知识,如果需要学习,那么请参考: 下载:makefile 中文手册或者点击打开链接或者跟我一起写Makefile( 陈皓 )这里说的是一般的实际的一个工程应该怎么去写。原创 2013-12-08 12:20:32 · 7418 阅读 · 2 评论 -
Makefile 实际用例分析(二) ------- 比较通用的一种架构
之前已经讲了这一篇文章:Makefile实际用例分析(一)-----比较通用的一种架构现在这篇其实和那个差的不是很多,只是在布局上有些差别(这个makefile也是论坛上一起讨论过的,囧,忘了哪个论坛)还是先看看基本的文件布局:介绍:debug是调试版本的binary文件夹release是发行版本binary文件夹src是所有的源文件文件夹、lib是引用原创 2013-12-08 13:07:31 · 5657 阅读 · 1 评论 -
判断链表是否有环 、 找到环的入口节点
昨天去完笔试的时候遇到以前见过的老题目,记录一下吧... 题目很简单,就是说:给你一个链表,判断是否存在环!同时求出环的入口节点! 我们先看这样一个题目:两个单链表(无环),判断是否有公共节点! 例图: * 1 ---> 2 ---> 3 ---> 4 ----> 5 *原创 2013-10-20 13:23:52 · 6194 阅读 · 2 评论 -
矩阵的求逆
最近做一个加密算法遇到需要计算矩阵的逆,闲着无聊,记录一下,以后免得再麻烦。#include #include #include #define MAX 20#define E 0.000000001/** * 计算矩阵src的模 */double calculate_A( double src[][MAX], int n ){ int i,j,k,x,y;原创 2013-11-19 11:08:22 · 2963 阅读 · 0 评论 -
BM 算法
看完上次的kmp后准备看BM算法, 但是一直都没有时间,感觉,看网上的一些原理解释并不能看的很懂,然后看了就迷迷糊糊的,现在总结一下,顺便是理清思路!不知道自己会不会讲的清楚一点!( 至于代码,自己写的还在测试,不知道有没有错,现在贴上来的是参照snort中的代码!虽然网上的很多代码都是这个!不过后来会写上自己的代码的 )BM 算法思路:1:BM算法是整体字串是从左往右移动原创 2013-05-28 14:49:00 · 2423 阅读 · 2 评论 -
动态规划 ( DP ) 和 实例分析
一直都不知道怎么来写这篇博文,真的很难写,主要是怕自己写不好,会造成误解!因为之前自己看的网上的一些文章就是的,不过也有好的~感谢那些大牛!现在也尝试写吧,写的不好,大家请包涵见谅!我一般是比较讨厌在bolg上写概念的,因为那真的很无聊,但并不是概念不重要,很重要,但是写出来应该要用比较好理解的描述。一直尝试着怎么去很好的描述DP,也一直在纠结!很多时候是会这一个DP的题目,下一个原创 2013-04-03 12:43:56 · 1644 阅读 · 0 评论 -
poj 1006 与 中国剩余定理
poj 1006 题的思路不是很难的,可以转化数学式:现设 num 是下一个相同日子距离开始的天数 p,e,i,d 如题中所设!那么就可以得到三个式子:( num + d ) % 23 == p; ( num + d ) % 28 == e; ( num + d ) % 33 == i;p,e,i,d 是我们输入的,那么我们需要求出num即可,为了方便,我们将num原创 2013-03-27 09:46:56 · 9969 阅读 · 3 评论 -
扑克牌顺子
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=28LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A原创 2013-03-19 08:39:15 · 1299 阅读 · 0 评论 -
Move!Move!!Move!!!
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=26汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的原创 2013-03-19 08:34:40 · 913 阅读 · 0 评论 -
孩子们的游戏(圆圈中最后剩下的数)
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=29每年六一儿童节,JOBDU都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为JOBDU的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为原创 2013-03-19 08:42:51 · 1518 阅读 · 0 评论 -
关于 斐波那契数列 的引申
最基本的函数模型是: / 0 n=0f(n)= 1 n=1 \ f(n-1)+(f-2) n>11.我们一般的解法是:int fun( int n ){原创 2013-03-12 14:35:55 · 1689 阅读 · 0 评论 -
又见 “快速排序”
同上文一样:http://blog.csdn.net/shanshanpt/article/details/8680498快速排序在一般的排序中被认为是平均效率最好的,主要适用于比较乱序的情况,对于基本有序的来说,效率不好~快排的思想很简单,看下图:原序列:4 3 5 2 1 |一般以第一个数位基准点,但是很多其他的方法也行,例如随机一个数( 保证是数组内部的原创 2013-03-16 12:22:30 · 804 阅读 · 0 评论 -
字符串的排序
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=11输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入:每个测试案例包括1行。原创 2013-03-18 09:14:29 · 912 阅读 · 0 评论 -
栈的压入压出
何海涛:《剑指Offer:名企面试官精讲典型编程题》:九度OJ题目描述:http://ac.jobdu.com/problem.php?cid=1039&pid=8输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5原创 2013-03-18 08:58:19 · 1457 阅读 · 0 评论 -
C 语言 关于 宏 中的 # 和 ## 基本知识
今天看到一篇技术博文的时候,看到##和#,当时真的很无语阿又看到一个自己不知道的知识,呵呵呵~~此处贴出来,顺便看看其用法:第一: 通俗来说: ##:就是连接两个参数 # :就是将参数转化为字符串 话不多说,只看DEMO: include#define S1( s) #s #define原创 2012-03-17 08:05:37 · 492 阅读 · 0 评论 -
优化C语言代码(程序员必读) ( 转载 )
转载地址:http://www.yuanma.org/data/2009/1126/article_4036.htm1、选择合适的算法和数据结构 应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,都可以大大提高程序执行的效转载 2012-03-16 16:26:11 · 639 阅读 · 0 评论 -
关于 函数指针 的一些理解
对于函数指针之类的问题,很多人都是很怕的,虽然有时候用的并不是很多,但是还是讲一下自己的理解吧! 也有一个简单的原则就是:还记得有一部电视剧是《向左走向右走》么?现在这个原则就是仿照他的---->>>>称为:“向右看,向左看 ”;从最中间的函数名开始看,先向右看,看到")"后再向左看,还是看看DEMO吧! 1.int(*p)(char); //!从p开始看:向原创 2012-03-16 16:22:14 · 584 阅读 · 0 评论 -
_declspec(dllexport)与_declspec(dllimport) 浅谈
_declspec(dllexport)与_declspec(dllimport)都是DLL内的关键字,即导出与导入。他们是将DLL内部的类与函数以及数据导出与导入时使用的。主要区别在于,dllexport是在这些类、函数以及数据的申明的时候使用。用过表明这些东西可以被外部函数使用,即(dllexport)是把DLL中的相关代码(类,函数,数据)暴露出来为其他应用程序使用。使用了(dllexpor原创 2012-03-16 16:15:28 · 688 阅读 · 0 评论 -
[转载]关于VC工程的几个技巧
原文地址:关于VC工程的几个技巧作者:XRay参考http://blog.csdn.net/win32asn/archive/2008/04/30/2346310.aspxhttp://hi.baidu.com/50254147/blog/item/d65f9316a7264404c83d6d64.html我们需要VC为我们做的事情包括:1.使用“/GMA/Temp/C转载 2012-03-16 16:11:23 · 617 阅读 · 0 评论