自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

转载 C语言switch case语句中定义变量问题

严正声明: 作者:psklf 出处: http://www.cnblogs.com/psklf/p/6702767.html 欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任!这个问题需要分开讨论,C 语言和 C++ 的标准定义是不同的。 C++int Caset(int a) { switch (a) { case 1:

2017-08-13 12:20:00 12331 2

原创 京东2015校园招聘笔试编程题

题目一:请编写一个函数func,输入一个正整数n,返回一个最小的正整数m(m>9,即m至少包含两位数),使得m的各位乘积等于n,例如输入36,输出49;输入100,输出455,如果对于某个n不存在着这样的m,请输出-1.语言不限,但不要用伪代码作答,函数输入输出请参考如下函数原型。int func(int n);分析: 采用递归思想解决。func(n) = k * func(n/k);

2017-08-11 16:27:10 502

转载 我理解的剑指offer----字符串的全排列和组合算法

注:在阅读原作者的博客的基础上,我增加了一些我在阅读过程中的理解,便于大家理解,也便于我自己复习。在我自己添加的内容前我会添加【注】标记。全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。

2017-08-07 10:41:39 562

原创 操作系统和linux编程常考题目

1、请用普通的互斥锁编程实现一个读写锁参考答案: 下面是可参考的伪代码:count_mutex = mutex_init();write_mutex = mutex_init();read_count = 0;void read_lock { lock(count_mutex); read_count++; if (read_count == 1) { lock(write_mute

2017-08-26 19:27:56 2870

原创 c/c++常考面试题(二)

一、实现一个Memcpy函数void *memcpy(void *dst, const void *src, size_t len){ if(NULL == dst || NULL == src){ return NULL; } void *ret = dst; if(dst char *)dst >= (char *)src + len){ //没有内存重叠,从低地

2017-08-26 19:15:30 337

原创 c/c++常考的面试题

一、分析下面代码有什么问题?void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );}参考答案: 字符串str1需要11个字节才能存放下(包括末尾的’\0’),而string只有10个字节的空间,strcpy会导致数组越界; 二、 分析下面代码有什么问题?void test2(){

2017-08-25 20:41:36 544

原创 网络基础常考面试题

一、OSI,TCP/IP,五层协议的体系结构,以及各层协议答:OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。每一层的协议如下:物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器)数据链路:PPP、FR、HDLC

2017-08-25 20:07:46 765

原创 动态规划

动态规划一、简介动态规划(dynamic programming)与分治方法很像,都是通过组合子问题的解来求解原问题。分治方法将问题划分为互不相交的子问题,递归的求解子问题,再讲它们的解组合起来,求出原问题的解。与之相反,动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题(子问题的求解是递归进行的,将其划分为更小的子子问题)。在这种情况下,分治算法会做许多不必要的工作,他会反复地求解那

2017-08-25 16:05:13 355

原创 linux命令集合

grep

2017-08-23 21:40:14 260

原创 奇虎360 2015校园招聘笔试编程题

题目一:写一个函数,根据两文件的绝对路径算出相对路径。如a="/qihoo/app/a/b/c/d/new.c",b="/qihoo/app/1/2/test.c",那么b相对于a的相对路径是"../../../../1/2/test.c"#include #include int isGoodPath( char *path ){ if ( path == NULL

2017-08-23 20:47:18 293

原创 虚拟内存(占坑)

占坑

2017-08-23 10:27:47 428

原创 进程和线程

进程和线程以及死锁参考:进程和线程的区别一个程序至少有一个进程,一个进程至少有一个线程。线程的划分尺度小于进程,使得多线程程序的并发性高。进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大的提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口,顺序执行序列和程序的出口。但是线程不能够独立运行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

2017-08-23 10:26:01 191

原创

树可分为普通树和二叉树,二叉树又可以分为完全二叉树和满二叉树。一、树的常见术语。根结点、子树、孩子、双亲、兄弟 结点的度:结点拥有的子树数称为结点的度(Degree) 叶子结点(终端结点):度为0的结点 分支结点(非终端结点):度不为0的结点 祖先:结点的祖先是从根到该结点所经分支上的所有结点 子孙:以某结点为根的子树中的任一结点都称为该结点的子孙 堂兄弟:双亲在同一层的结点互为堂兄弟

2017-08-22 11:16:39 178

原创 Singleton模式

Singleton模式分为两种模式,懒汉模式和饿汉模式。顾名思义,懒汉模式就是在需要类的对象时再去产生对象,而饿汉模式就是在类初始化时就已经产生了一个类对象,不管我们需不需要这个对象,这个对象自始至终就在那里。 懒汉模式: 优点:可以实现延迟实例化 缺点:多线程环境下需要特殊处理、较饿汉模式有性能问题。饿汉模式: 优点:不用考虑多线程问题,也有比较好的性能 缺点:不能实现延迟实例化写法一、

2017-08-22 10:06:46 289

原创 正则表达式

1、正则表达式介绍:正则表达式(Regular Expression)是用来检索、替换那些符合某个模式规则的文本。正则表达式分为基本正则表达式和拓展正则表达式。正则表达式最初是由Unix中的工具软件(如sed和grep)普及开的。2、正则表达式和通配符:linux下正则表达式和通配符很像,都是为了找到匹配某个规则的字符串,但通配符像是正则表达式的轻量版,主要用在shell中,是由shell负责解析的

2017-08-21 21:27:03 478

原创 Linux命令——wc

wc Linux统计文件行数命令WC功能:统计给定文件的行数,字数,字节数,如果有多个文件给出,分别输出每个文件的信息,如果不指定文件,则从标准输入中读取输入。用法:wc [OPTION] … [FILE]…​ -c 字节数​ -m 字符数​ -l 行数​ –files0-from=F 从指定文件描述符读取输入,默认值为F,表示从标准输入中读取输入。​ -w 单词

2017-08-21 19:50:45 313

原创 位运算

位运算中设计到的操作有:与、或、非、异或、左移、右移。题目一:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数,例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2。分析: 1.将给定的整数右移,并且判断每一次右移之后最低位是否为1. 2.设置一个flag,每次将flag左移,判断给定的整数每一位是否为1. 3.将一个数与它减一相与,会将这个数最右边的1变为0.

2017-08-21 19:49:24 189

转载 二叉树前序、中序、后序遍历非递归写法的透彻解析

版权声明:本文为博主原创文章,转载,请注明出处。若是商业用途,请事先联系作者。 本文源地址:http://blog.csdn.net/zhangxiangdavaid/article/details/37115355前言在前两篇文章二叉树和二叉搜索树中已经涉及到了二叉树的三种遍历。递归写法,只要理解思想,几行代码。可是非递归写法却很不容易。这里特地总结下,透彻解析它们的非递归写法。其中,中序遍历的

2017-08-21 19:48:04 179

原创 win10交换Caps和Ctrl

点击Win+R键 在输入框键入regedit,打开注册表 进入HKEY_LOCAL_MACHINE -> System -> CurrentControlSet -> Control -> KeyBoard Layout。记住,一定是keyBoard Layout,而不是KeyBoard Layouts 右键菜单,然后选择New -> Binary value 重命名New Value #1

2017-08-20 11:28:23 4688 2

原创 线程进程同步(占坑)

占坑

2017-08-18 10:51:46 238

原创 const关键字相关

const作用:const在c中的作用和cpp中的略有不同。在c中经过const修饰的变量并不是绝对的常量,例如Cconst int a = 0; //定义了一个c语言中的常量int *pa = &a; //定义了一个普通指针指向常量a,这中间经过了强制类型转换*pa = 2; //a的值可以通过pa指针修改printf("%d %d\n", a, *pa);

2017-08-18 10:48:17 196

原创 使用天平称重,经验证,用四个砝码可以秤出1~40的全部整数重量,请问是哪四个砝码?

这个在数学上叫做梅氏砝码问题,其叙述如下: 若有n个砝码,重量分别为M1,M2,……,Mn,且能称出从1到(M1+M2+……+Mn)的所有重量,则再加一个砝码,重量为Mn+1=(M1+M2+……+Mn)*2+1,则这n+1个砝码能称出从1到(M1+M2+……+Mn+Mn+1)的所有重量。 取n=1,M1=1,则可以依此类推出所有砝码的重量为: 1,3,9,27

2017-08-18 10:41:42 3516

原创 两根不均匀的香,每根香烧完的时间是一个小时,用它们确定一段15分钟的时间

先点燃一根香的一端,同时点燃另一根香的两端,当两端点燃的香燃尽时,便是半小时的时间;在两端点燃的香燃尽时,点燃剩下那根香的另外一端,这样,从剩下那根香的另一端开始点燃,到最终燃尽,便是15分钟的时间。

2017-08-18 10:28:18 2389

原创 反转链表

题目:输入一个链表,反转链表后,输出链表的所有元素。struct ListNode{ int value; ListNode *next;};void ReverseList( ListNode** pHead ){ if ( pHead == NULL || *pHead == NULL || (*pHead)->next == NULL )

2017-08-18 10:20:22 154

原创 C语言中常见库函数编写(占坑)

strcpy函数:如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案: 2分 void strcpy( char *strDest, char *strSrc ){ while( (*strDest++ = * strSrc++) != ‘\0’ );}4分 void strcpy( char *strDest, const char *strSrc ) //将

2017-08-18 09:51:26 413

原创 面向对象的特征(占坑)

(1)封装性:封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 在C++中类中成员的属性有:public, protected, private,这三个属性的访问权限依次降低。 (2)继承性:继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

2017-08-18 09:40:22 175

原创 进程的3种状态及转换情况(占坑)

占坑

2017-08-18 09:39:11 694

原创 机器人的运动范围

题目:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?class Solution{public:

2017-08-18 09:37:50 172

原创 矩阵中的路径

题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵

2017-08-17 15:27:59 153

原创 滑动窗口的最大值

题目:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{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,6],2,5,1}

2017-08-16 20:43:14 180

原创 数据流中的中位数

题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。class Solution{public: void Insert( int num ) { if ( ((min.size()+max.size()) & 1) ==

2017-08-16 19:49:06 146

原创 二叉搜索树的第k个结点

题目:给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 3 7 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。分析: 中序遍历二叉树。class Solution{public: TreeNode* KthNode( TreeNode* pRoot, int k ) { if ( pRoot == NULL || k == 0 )

2017-08-16 19:47:30 282

原创 序列化二叉树

题目:请实现两个函数,分别用来序列化和反序列化二叉树class Solution {private: TreeNode* decode(char *&str) { if(*str=='#'){ str++; return NULL; } int num = 0; while(*

2017-08-16 15:45:57 187

原创 按之字形顺序打印二叉树

题目:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。分析: 使用两个栈。struct TreeNode{ int val; struct TreeNode *left; struct TreeNode *right; TreeNode( int x ) :

2017-08-16 11:13:28 165

原创 对称的二叉树

题目:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。分析: 通常的树的遍历算法都是先遍历访问左子树,再访问右子树,我们设计一种新的遍历算法,先访问右子树,再访问左子树。并且我们需要考虑到空结点。struct TreeNode{ int val; struct TreeNode *left; struct T

2017-08-16 10:29:40 180

原创 二叉树的下一个结点

题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。分析: 例: 1.如果这个结点有右子树,那下一个结点就是右子树的最左结点,例如结点e。 2.如果这个结点没有右子树,但他是父结点的左孩子,那么它的下一个结点就是父结点,例如结点d。 3.如果这个结点没有右子树,并且他是父结点的右孩子,那么就要一直上

2017-08-14 21:18:58 154

原创 删除链表中重复的结点

题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。分析: 常规方法删除class Solution{public: ListNode* deleteDuplication( ListNode* pHead ) { if ( pHea

2017-08-14 20:33:18 146

原创 链表中环的入口点

题目:一个链表中包含环,请找出该链表的环的入口结点。分析: 分两步: 1.利用两个指针知道链表的环中的结点数。 2.利用两个指针找到入口结点。class Solution{public: ListNode* EntryNodeOfLoop( ListNode* pHead ) { ListNode* meetingNode = MeetingNode( p

2017-08-14 17:43:03 274

原创 字符流中第一个不重复的字符

题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。分析: 使用哈希表class Solution{public: Solution() : index(

2017-08-14 17:20:21 177

原创 表示数值的字符串

题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。class Solution{public: bool isNumeric( char* string ) {

2017-08-14 16:51:30 174

cocos2dx3.14_cpp_html

cpp cocos2dx3.14 api官方文档

2017-03-02

2048项目.docx

一个简单的c语言小项目

2016-10-30

STL中文版.pdf

这个是PJ版的,作为源码分析的入门,初学者应该好好看看

2016-10-30

侯捷《STL源码剖析》简体中文完整版(清晰扫描带目录)

这本书一定得好好看

2016-10-30

C++STL源码分析 SGI版

这个是SGI,比PJ版难,大家可以先分析PJ版的,再来挑战这个

2016-10-30

C++STL源码PJ版

适合初学者提高,了解C++技巧

2016-10-30

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

TA关注的人

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