自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 归并排序(非递归)

//归并排序1(迭代的方式)#include#includeusing namespace std;//两个排序数组的合并templatevoid Merge(T* initList, T*mergeList, int l, int m, int n)//initeList是一个数组,MergeList是另一个数组,l是数组的下标,m也是数组的下标,n是数组的个数{

2017-08-29 23:50:40 274

原创 剑指offer27二叉树 转双向链表

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {

2017-08-28 10:29:49 177

原创 二叉树中和为某一值的路径

输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), r

2017-08-25 18:58:04 136

原创 剑指offer21从上到下打印二叉树

从上往下打印出二叉树的每个节点,同层节点从左至右打印。/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*///层序遍历(借助队列和数组)class S

2017-08-25 16:44:16 140

原创 剑指offer20顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.class Solution {public:    vector printMatrix(vector > matrix)

2017-08-25 12:38:57 164

原创 剑指offer8旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。//二分查找与顺序查找的结合class Solution {    public:    int mi

2017-08-24 15:46:21 152

原创 剑指offer面试题4

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public:void replaceSpace(char *str,int length) {  if(str==NULL&&length    return;    int

2017-08-22 14:33:00 135

原创 测试

2017-08-20 17:03:26 181

原创 剑指offer21包含min函数的栈

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。//一切问题自己定,只要能实现功能就行了//要求min push pop的时间复杂度都为o(1)//给你一个栈,你要能在o(1)时间找到最小值class Solution {public:        void push(int value) {        //在压入数据栈的

2017-08-20 16:26:57 168

原创 剑指offer63二叉搜索树的第k个节点

给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :   

2017-08-20 15:25:58 132

转载 TCP三次握手四次握手

#三次握手 客户端向服务器端发送SYN包,客户端进入SYN_SEND状态 服务器端收到客户端发送的包返回ACK+SYN包,服务器端进入SYN_RECV状态 客户端收到服务器端返回的包再发回ACK包,客户端进入ESTABLISHED状态,服务器端收到包也进入ESTABLISHED状态 客户端状态:SYN_SENDE STABLISHED 服务器端状态:SYN_RC

2017-08-18 15:58:12 210

转载 I/O复用到底是什么意思

问epoll 网络编程 jql09 2016年03月05日提问 · 2016年03月06日更新关注 6 关注收藏 3 收藏,1.4k 浏览问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键内容,没有改进余地UNP网络编程中,有I/O复用的

2017-08-18 12:27:01 2246

转载 微软vs stl中vector和list的效率比较

其实微软的stl list是一个比较鸡肋的东西。按照理解,链表(list)的插入和删除时间和空间开销应该比顺序表(vector)的效率更高。考虑删除操作,由于vector删除的时候,会存在内存拷贝,所以时间和空间效率开销肯定较之于list大,这个毫无疑问。但是令我始料不及的是list的push_back操作竟然比vector慢,而且慢很多。根据笔者推断有可能是由于stl的list是双向链表

2017-08-17 18:33:08 3798

原创 剑指offer60 层序打印二叉树

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL)

2017-08-17 10:05:40 203

转载 C++多态的实现原理

C++多态的实现原理标签: c++编译器bindingclassc2011-09-06 15:13 28249人阅读 评论(16) 收藏 举报 分类: c/c++(96)  1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。

2017-08-16 11:44:49 127

转载 线程同步机制

本周主要学习线程同步机制(互斥量、读写锁和条件变量)和简单程序的实现,对线程同步有了进一步认识内容如下:1、线程的基本概念,相关函数2、互斥量说明·         处于标圆形框之上的线段表示相关的线程没有拥有互斥量;·         处于圆形框中心线之上的线段表示相关的线程等待互斥量;·         处于圆形框

2017-08-15 21:05:13 195

原创 剑指offer59对称的二叉树

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left

2017-08-15 16:07:36 157

原创 剑指offer58二叉树的下一个节点

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。/*struct TreeLinkNode {    int val;    struct TreeLinkNode *left;    struct TreeLinkNode *right;    struct Tree

2017-08-15 15:34:14 179

原创 linux和网络编程笔记

第一部分、章节目录3.4.1.程序的开始和结束3.4.2.进程环境3.4.3.进程的正式引入3.4.4.fork创建子进程3.4.5.父子进程对文件的操作3.4.6.进程的诞生和消亡3.4.7.父进程wait回收子进程3.4.8.waitpid介绍3.4.9.exec族函数及实战13.4.10.exec族函数及实战23.4.11.进程状态和system函

2017-08-15 14:32:19 487

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

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/*struct ListNode {    int val;    struct ListNode *next;    ListNode(int x) :        val(x), next

2017-08-15 11:46:29 125

原创 剑指offer55

请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。class Solution{public:         vector a; 

2017-08-14 21:13:15 131

转载 对类的理解

一、C++类的定义    C++中使用关键字 class 来定义类, 其基本形式如下:class 类名{public://行为或属性 protected://行为或属性private://行为或属性}; 示例:     定义一个点(Point)类, 具有以下属性和方法:     ■ 属性: x坐标, y坐标

2017-08-13 21:29:32 400

转载 如何正确地写好一个界面

写界面可以说是每位移动应用开发者的基本功,也是一位合格移动应用开发者绕不过去的坎。但就如不是每一位开发者都能够成为合格的开发者一样,本人在不同的团队中发现,甚少有人能够编写出合格的UI代码;而非常奇怪的是,在很多的开发者论坛上看到我们移动开发者更多关注于某个控件或者是动画,但却很少看到深入剖析UI机制,指导UI开发的文章。由于界面涉及到的方面实在过于广泛,本文不可能事无巨细,一一道来,所以

2017-08-13 10:54:41 1708

原创 数据库和服务器的关系

服务器就像筷子 ,数据库就像是一盘菜   程序就像人,人们用筷子夹盘子里的菜来吃。一般来说图片保存在服务器上 确切说应该是保存在服务器主机上,服务器可以保存东西  那要数据库来做什么?数据库是用来保存数据让我们来直接调用的     就算是图片保存在服务器上也会把他的地址保存到数据库里 再通过地址来调用

2017-08-12 21:57:13 20228 6

原创 达芬奇的鸡蛋

2017-08-11 22:35:01 230

转载 你要知道的C与C++的区别

如果要说C和C++的区别的话,可能可以列出很多方面出来,但是有许多方面的区别是我们学完这两门语言之后就可以很好的理解和区分的,比如C是面向过程的一门编程语言,C++虽然主要是以C的基础发展起来的一门新语言,但它不是C的替代品,不是C的升级,C++和C是兄弟关系,它可以很好地进行面向对象的程序设计。我要讨论的不是这些比较显而易见的区别,而是哪些容易被我们所忽略或者混淆的区别。

2017-08-11 22:12:37 9586 2

转载 HTTP 代理服务器技术选型之旅

好久不写博客了,在元旦到来前水一篇文章,聊聊我在实现代理服务器的过程中遇到的一些坑,同时祝各位读者新年快乐。背景长期以来,贴吧开发人员多,业务耦合大,需求变化频繁,因此容易产生 bug。而我所负责的广告相关业务,和 UI 密切相关,一旦因为某种原因(甚至是被别人改了代码)产生了 bug,必然大幅度影响广告收入。解决问题的一种方法在于频繁的测试,既然避免不了代码层面的耦合,那总是可以通过

2017-08-11 17:28:16 501

转载 list的基本操作

Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢.assign() 给list赋值back() 返回最后一个元素begin() 返回指向第一个元素的迭代器clear() 删除所有元素empty() 如果list是空的则返回trueend() 返回末尾的迭代器erase() 删除一个元素fro

2017-08-08 18:16:22 562

原创 递归解决换零钱问题

以下是我们的问题:把100元用50元,20元,10元,5元,1元去换,总共有几种换法?形式化(formalize)为了简化叙述,把问题记为“coc(100, [50, 20, 10, 5, 1])”。coc: case of change或者count of change(change在英文中有零钱的意思)为使问题更具有一般性

2017-08-03 23:08:41 2835 3

空空如也

空空如也

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

TA关注的人

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