自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

灯火阑珊处

相爱没有那么容易,每个人有ta的脾气

  • 博客(36)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++中拷贝(复制)构造函数和赋值运算符重载函数

C++中拷贝构造函数和赋值运算符重载函数何时调用?先看下面的程序:#include using namespace std;class D{public: D() { cout<<"调用D的无参构造函数"<<endl; } D(const D &d) { cout<<"调用D的拷贝构造函数"<<endl; } D & operator=(const D &d

2015-06-26 15:42:42 471

原创 LeetCode OJ 之 二叉树最大子树和

题目:给定一棵二叉树,树节点的值有正数和负数,求二叉树的子树中结点和最大为多少?注:此题并非是LeetCode中的。思路:在后续遍历的过程中计树的所有结点值的和。代码:#include #include #include using namespace std;struct TreeNode{ int val; TreeNode *left; TreeNo

2015-06-24 13:30:38 2322

原创 LeetCode OJ 之 Kth Largest Element in an Array(数组中的第k大元素)

题目:Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.For example,Given [3,2,1,5,6,4] and k = 2, r

2015-06-24 11:23:22 547

原创 内存查看命令之 - free

free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。1.命令格式:        free [参数]2.命令功能:        free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略3.命令参数:-

2015-06-16 22:30:54 575

原创 LeetCode OJ 之 Count Complete Tree Nodes(计算完全二叉树的结点数目)

题目:Given a complete binary tree, count the number of nodes.Definition of a complete binary tree from Wikipedia:In a complete binary tree every level, except possibly the last, is completel

2015-06-16 10:56:10 539

原创 LeetCode OJ 之 Implement Stack using Queues(使用队列实现栈)

题目:Implement the following operations of a stack using queues.push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- Get the top element.empty() -- Re

2015-06-16 10:02:16 414

原创 LeetCode OJ 之 Invert Binary Tree(反转二叉树)

题目:Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9to 4 / \ 7 2 / \ / \9 6 3 1Trivia:This problem was inspired by this original tweet by M

2015-06-16 09:01:24 407

原创 设计模式之 - 总结

按照目的来分,设计模式可以分为创建型模式、结构型模式和行为型模式。创建型模式用来处理对象的创建过程;结构型模式用来处理类或者对象的组合;行为型模式用来对类或对象怎样交互和怎样分配职责进行描述。 创建型模式用来处理对象的创建过程,主要包含以下5种设计模式: 1、工厂方法模式(Factory Method Pattern)的用意是定义一个创建产品对象的工厂接口,将实际创建工作推

2015-06-11 19:57:18 455

原创 设计模式之 - 访问者模式

一、引子        对于系统中一个已经完成的类层次结构,我们已经给它提供了满足需求的接口。但是面对新增加的需求,我们应该怎么做呢?如果这是为数不多的几次变动,而且你不用为了一个需求的调整而将整个类层次结构统统地修改一遍,那么直接在原有类层次结构上修改也许是个不错的主意。        但是往往我们遇到的却是:这样的需求变动也许会不停的发生;更重要的是需求的任何变动可能都要让你将整个类层

2015-06-10 17:25:15 369

原创 设计模式之 - 模板模式

一、引子        这是一个很简单的模式,却被非常广泛的使用。之所以简单是因为在这个模式中仅仅使用到了继承关系。        继承关系由于自身的缺陷,被专家们扣上了“罪恶”的帽子。“使用委派关系代替继承关系”,“尽量使用接口实现而不是抽象类继承”等等专家警告,让我们这些菜鸟对继承“另眼相看”。        其实,继承还是有很多自身的优点所在。只是被大家滥用的似乎缺点更加明显了。

2015-06-10 16:33:04 357

原创 设计模式之 - 策略模式

一、引子        18 日下午 3 时一刻,沈阳,刚刚下完一场几年罕见的大雪,天气格外的冷,公交车在“车涛汹涌”的公路上举步维艰,我坐在里面不时的看表——回公司的班车就要发车了,我还离等车的地方好远……。都是这可恶的天气打乱了我的计划!看来我要重新盘算下下了公交车的计划了:如果在半点以前能够到达等班车的地方,我就去旁边卖书报的小店里面买份《南方周末》,顺便避避严寒;如果可恶的公交到时候还

2015-06-10 16:20:44 341

原创 设计模式之 - 状态模式

一、定义        GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。这个对象看起来似乎修改了它的类。看起来,状态模式好像是神通广大——居然能够“修改自身的类”!        能够让程序根据不同的外部情况来做出不同的响应,最直接的方法就是在程序中将这些可能发生的外部情况全部考虑到,使用 if else 语句来进行代码响应选择。但是这种方法对于复杂一

2015-06-10 15:16:01 371

原创 设计模式之 - 观察者模式

一、引子        还记得警匪片上,匪徒们是怎么配合实施犯罪的吗?一个团伙在进行盗窃的时候,总有一两个人在门口把风——如果有什么风吹草动,则会立即通知里面的同伙紧急撤退。也许放风的人并不一定认识里面的每一个同伙;而在里面也许有新来的小弟不认识这个放风的。但是这没什么,这个影响不了他们之间的通讯,因为他们之间有早已商定好的暗号。上面提到的放风者、偷窃者之间的关系就是观察者模式在现实中的活生生

2015-06-10 14:45:39 472

原创 LeetCode OJ 之 Recover Binary Search Tree(恢复二叉搜索树)

题目:Two elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note:A solution using O(n) space is pretty straight forward. Could

2015-06-10 08:38:54 518

原创 设计模式之 - 备忘录模式

一、定义        备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。举个简单的例子,我们玩游戏时都会保存进度,所保存的进度以文件的形式存在。这样下次就可以继续玩,而不用从头开始。这里的进度其实就是游戏的内部状态,而这里的文件相当于是在游戏之外保存状态。这样,下次就可以从文件中读入保存的进度,从而恢复到原来的状

2015-06-08 16:12:24 362

原创 设计模式之 - 中介者模式

一、定义        Mediator Pattern 中文译为“中介者模式”、“调停者模式”。其实都不是很好,由于现实生活中的“中介”是要和客户打交道,而省去客户原本繁琐的手续,这一点和门面模式的初衷很相像;而在 Mediator Pattern 中 Mediator 是不可见的。“调停”也不好,因为 Mediator在程序中存在的初衷仅仅是规范信息传递的方式。        GO

2015-06-08 15:19:25 358

原创 设计模式之 - 迭代器模式

一、定义        迭代器( Iterator)模式,又叫做游标( Cursor)模式。 GOF 给出的定义为:提供一种方法访问一个容器( container)对象中各个元素,而又不需暴露该对象的内部细节。        从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使

2015-06-07 17:03:16 397

原创 设计模式之 - 解释器模式

一、引子        解释器模式描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。        虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。二、定义与结构        解释器模式的定义如下:定义语言的文法,并且建立一个解释器来解释该语言中的句子。它属于类的行为模式。这里的语言意

2015-06-07 16:36:06 394

原创 设计模式之 - 命令模式

一、定义        命令模式是从界面设计中提取出来的一种分离耦合,提高重用的方法。被认为是最优雅而且简单的模式,它的应用范围非常广泛。        《设计模式》中命令模式的定义为:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。        在我看来,其实命令模式像很多设计模式一样——通过在你的请求和处理之间加上

2015-06-07 16:21:06 337

原创 LeetCode OJ 之 Copy List with Random Pointer(复制含有随机指针的链表)

题目:A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of the list.一个链表的每个结点含有一个额外的指针指向链表中

2015-06-04 14:55:56 438

原创 LeetCode OJ 之 Merge k Sorted Lists(合并k个有序链表)

题目:Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.合并k个有序链表,返回合并后的链表。分析复杂度。思路:先两两合并。链表数减少到k/2,然后再两两合并链表数目又减少到k/4,直到只剩一个链表。代码:/** * De

2015-06-04 14:07:20 409

原创 LeetCode OJ 之 Median of Two Sorted Arrays(两个有序数组的中位数)

题目:There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).有两个有序数组nums1和nums2

2015-06-04 10:18:07 447

原创 80x86寻址方式 -- 实模式和保护模式

首先实模式和保护模式是CPU的两种工作模式。一开始PC启动时CPU是工作在实模式下的,经过某种机制后,CPU跳转到保护模式。        Intel 8086是16位CPU,它只有16位寄存器、16位数据总线和20位地址总线,它只能运行在实模式。        在实模式下:        20位的物理地址=16位的段基址 * 16(左移4位)+ 16位偏移地址        段值

2015-06-03 21:26:04 2076

原创 LeetCode OJ 之 Excel Sheet Column Number (excel表格列号)

题目:Related to question Excel Sheet Column TitleGiven a column title as appear in an Excel sheet, return its corresponding column number.For example: A -> 1 B -> 2 C -> 3

2015-06-03 10:53:19 372

原创 LeetCode OJ 之 Excel Sheet Column Title

题目:Given a positive integer, return its corresponding column title as appear in an Excel sheet.For example: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB

2015-06-03 10:43:51 372

原创 LeetCode OJ 之 Happy Number (happy数)

题目:Write an algorithm to determine if a number is "happy".A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of th

2015-06-03 09:28:05 465

原创 LeetCode OJ 之 House Robber(抢劫犯)

题目:You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjac

2015-06-03 08:49:51 576

原创 设计模式之 - 职责链模式

一、定义         职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。其思想很简单,考虑员工要求加薪。公司的管理者一共有三级,总经理、总监、经理,如果一个员工要求加薪,应该向主管的经理申请,如果加薪的数量在经理的职权内,那么经理可以直接批准,否则将申请上交给总监。总监的处理方式也一样

2015-06-02 20:13:06 422

原创 设计模式之 - 代理模式

一、定义        我们去科技市场为自己的机器添加点奢侈的配件,很多 DIYer 都喜欢去找代理商,因为在代理商那里拿到的东西不仅质量有保证,而且价格和售后服务上都会好很多。客户通过代理商得到了自己想要的东西,而且还享受到了代理商额外的服务;而生产厂商通过代理商将自己的产品推广出去,而且可以将一些销售服务的任务交给代理商来完成(当然代理商要和厂商来共同分担风险,分配利润),这样自己就可以花

2015-06-02 16:43:45 407

原创 LeetCode OJ 之 Count Primes(计算素数的个数)

题目:Description:Count the number of prime numbers less than a non-negative number, n.求小于正整数 n 的数中素数的个数。思路:1、暴力遍历每个数字,判断是否是素数,效率太低2、空间换时间。定义一个大小为 n 的数组,由小到大对每个数字标记。代码:class Solutio

2015-06-02 11:28:16 683

原创 LeetCode OJ 之 Remove Linked List Elements(删除链表中的元素)

题目:Remove all elements from a linked list of integers that have value val.ExampleGiven: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6Return: 1 --> 2 --> 3 --> 4 --> 5思路:1、迭代2、

2015-06-02 10:55:44 411

原创 LeetCode OJ 之 Isomorphic Strings(同构字符串)

题目:Given two strings s and t, determine if they are isomorphic.Two strings are isomorphic if the characters in s can be replaced to get t.All occurrences of a character must be replaced

2015-06-02 10:20:35 400

原创 设计模式之 - 享元模式

一、定义        享元模式英文称为“Flyweight Pattern”,又译为羽量级模式或者蝇量级模式。        享元模式的定义为:采用一个共享类来避免大量拥有相同内容的“小类”的开销。这种开销中最常见、直观的影响就是增加了内存的损耗。享元模式以共享的方式高效的支持大量的细粒度对象,减少其带来的开销。        在名字和定义中都体现出了共享这一个核心概念,那么怎么

2015-06-01 20:05:14 399

原创 LeetCode OJ 之 Contains Duplicate II (包含重复判断- 二)

题目:Given an array of integers and an integer k, find out whether there there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between iand j is at

2015-06-01 16:09:19 387

原创 LeetCode OJ 之 Contains Duplicate (包含重复判断)

题目:Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every ele

2015-06-01 15:56:42 411

原创 LeetCode OJ 之 Reverse Linked List (链表逆序)

题目:Reverse a singly linked list.click to show more hints.思路:1、迭代2、递归迭代代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *

2015-06-01 15:23:40 427

空空如也

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

TA关注的人

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