自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 10个房间里放着随机数量的金币

10个房间里放着随机数量的金币。每个房间只能进入一次,并只能在一个房间中拿金币。 一个人采取如下策略:前四个房间只看不拿。随后的房间只要看到比前四个房间都多的金币数, 就拿。否则就拿最后一个房间的金币。编程计算这种策略拿到最多金币的概率。#include #include #include using namespace std; const int rooms = 10; cl

2016-03-20 12:12:31 708

原创 VISITOR(访问者)——对象行为模式

1.意图表示一个作用于某对象结构中的各元素的操作。它使你在不改变各元素类的前提下定义作用于这些元素的新操作。2.适用性一个对象结构包含很多类对象,而你想根据对象的类别对这些对象实施不同的操作。需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作“污染”这些对象的类,也不希望在增加新操作时修改这些类。对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。

2016-03-15 15:50:29 424

原创 227. Basic Calculator II

常用方法为两个栈,数值栈与操作符栈,每次操作符入栈前比较优先级,小的推迟运算。以下是不用栈的方法, class Solution { public: int calculate(string s) { istringstream is('+'+s+'+'); char op; int result=0,n,prevalue=0;

2016-03-15 13:05:39 307

原创 OBSERVER(观察者)——对象行为模式

1.意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新。2.适用性当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将二者封装在独立的对象中以使它们可以 各自独立地改变和复用。当一个对象改变需要同时改变其它对象,而不知道具体有多少对象有待改变(数量)。当一个对象必须通知其它对象,而它又不知道这些对象是谁。3.结构4.实现观察多个目

2016-03-14 19:48:59 694

原创 309.Best Time to Buy and Sell Stock with Cooldown

1.基本思路:此题可通过DP来解决,但状态转移方程的构想不是那么明显,首先可以通过两个数组来表示买与卖的信息:buy[i]:表示第i天为止,最近一次股票购入后所持有的利润sell[i]:表示第i天为止,最近一次股票抛售后所持有的利润其中:最近一次表示在第i天或者之前所做的股票交易。2.状态转移方程buy[i] = max(buy[i-1],sell[i-2]-prices[i]); /

2016-03-14 16:36:07 406

原创 STRATEGY(策略)-对象行为模式

1.意图定义一系列的算法,把它们一个个封装起来,并且使它们可以互相替换。使得算法独立于客户而变化。2.适用性许多相关的类仅行为有异:提供了一种用多个行为中的一个来配置一个类的方法。需要使用一个算法的不同变体:这些变体实现为一个算法的类层次时。算法使用客户不该知道的数据:以避免暴露复杂的、与算法相关的数据结构。类中的操作以多个条件语句的形式出现:将相关的条件分支移入它们各自的Strategy类

2016-03-14 12:33:42 500

原创 310. Minimum Height Trees

310. Minimum Height TreesFor a undirected graph with tree characteristics, we can choose any node as the root. The result graph is then a rooted tree. Among all possible rooted trees, those with

2016-03-13 11:45:06 375

原创 8.定制new和delete

Item49:Understand the behavior of the new-handler.set_new_handler允许客户指定一个函数,在内存无法获得满足时调用。Item50:Understand when it makes sense to replace new and delete.当需要改善效能,对heap运用错误进行调试,收集heap使用信息时。Item51:Adhere

2016-03-12 22:19:29 328

原创 7.模板与泛型编程

Item41:Understanding implicit interfaces and compile-time polymorphism.编译期多态:模板根据类型实例化,发生在编译期,类似确定哪一个重载函数被调用。 运行期多态:运行时决定那个一个virtual函数被调用。Item42:Understand the two meanings of typename.typename用于标识嵌套从

2016-03-12 22:06:46 495

原创 6.继承与面向对象设计

Item32:Make sure public inheritance “is-a”.Item33:Avoid hiding inherited names.Item34:Differentiate between inheritance of interface and inheritance of implementation.①纯虚函数:只继承接口(也可以在类外定义)让Derived clas

2016-03-12 21:39:01 354

原创 5.实现

Item26:Postpone variable definitions as long as possible.Item27:Minimize casting.①static_cast: 可转换底层const,父与子指针互相转换无类型检查A *p;static_cast<const A*>(p);②const_cast:可去除底层const,使所指对象可变const A *cp;const_c

2016-03-12 21:21:30 304

原创 4.设计与声明

Item18:Make interfaces easy to use correctly and hard to use incorrectly.shared_ptr定制删除器可以防范DLL问题(对象在一个DLL中创建,却在另一个DLL中销毁),自动解除互斥锁等。Item19:Treat class design as type desing.Item20:Prefer pass-by-refere

2016-03-12 21:08:47 326

原创 Palindrome Linked List

Given a singly linked list, determine if it is a palindrome. struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: bool isP

2016-03-12 13:32:18 325

原创 3.资源管理

Item13:Use objects to manage resources.RAII(Resource Acquisition Is Initialization):资源获取时便是初始化时。Item14:Think carefully about copying behavior in resource-managing.shared_ptr使用注意点: 当处理Mutex互斥器对象时,有lock

2016-03-08 21:33:19 335

原创 2.构造/析构/赋值运算

Item05:Konw what functions C++ silently writes and calls  编译器可以暗自为class创建default构造函数,copy构造函数,copy assignment操作符,移动构造函数,移动赋值运算符(C++11)。Item06:Explicitly disallow the use of compiler-generated functions

2016-03-07 21:27:30 332

原创 Convert Sorted List to Binary Search Tree

Convert Sorted List to Binary Search TreeGiven a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.用递归的方法:

2016-03-07 21:10:47 310

原创 Jar文件运行缓慢改进

当将java工程从eclipse打包成jar文件运行时,如果导出过多的包将会导致程序运行变得非常缓慢。 The option “Package required libraries into generated JAR” copy the libs you use as jar files into your own jar file and the JVM needs to open it

2016-03-07 16:47:41 2787

原创 1.让自己习惯C++

Item01:View C++ as a federation of language.c语言(无异常,无重载…)object-oriented C++Template C++STL Item02:Prefer consts,enums,and inlines to #defineconst有类型检测,而#define不会进入符号表,出错不容易调试enums可以作为类中开辟数组大小的专

2016-03-06 22:39:30 355

原创 Add Binary

Add BinaryGiven two binary strings, return their sum (also a binary string).For example,a = "11"b = "1"Return "100".代码:class Solution {public: s

2016-03-06 20:54:46 238

原创 第十九章:特殊工具与技术

1.控制内存分配1.1 new&delete表达式new : ①分配空间②构造③返回指针 其中分配空间通过库函数(operator new/operator new[])实现。 delete:①析构②释放空间 其中释放空间通过库函数(operator delete/operator delete[])实现。1.2 malloc&freemalloc(size):返回void* free(vo

2016-03-05 22:25:59 369

原创 第十八章:命名空间与多重继承

1.命名空间1.1 基本形式namespace ns{ /*...*/} //没有";"不能出现在函数或类的内部。::member_name表示全局作用域内。1.2 inline命名空间外层可以直接访问,常用于版本更新的便捷。/*Fifth.h*/inline namespace Fifth{ /*...*/}/*Fourth.

2016-03-05 20:40:54 720

原创 第十六章:模板与泛型编程2

1.模板实参推断1.1 自动类型转换const转换:非const对象的引用(指针)传递给一个const的引用(指针)形参。 数组或函数指针转换:若函数实参不是引用类型,则可以对数组或函数类型的实参应用正常的指针转换。1.2 函数模板显示实参template &lt;typename T1,typename T2,typename T3&gt;T1 sum(T2,T3); //T2,T3

2016-03-04 22:31:55 510

原创 第十六章:模板与泛型编程1

1.函数模板1.1 样例template&lt;typename T,class U&gt; //可用typename或classinline T fcn(T v1,U v2){/*...*/} //inline可选1.2 非类型模板参数template &lt;typename T,siez_t N&gt;size_t arr_size(const T(&amp;p)[N]) /

2016-03-04 21:41:41 358

原创 第十七章:标准库特殊设施

1.tuple定义:有固定数目的各种类型对象的集合。1.1 定义与初始化:tuple< T1,T2,T3…> t;tuple< T1,T2,T3…> t(t1,t2,t3);    //{t1,t2,t3}(explicit所以不能用=隐式转换)auto t = make_tuple(t1,t2,…);1.2 访问成员:get< index >(t);               //返

2016-03-03 13:47:11 382

编译原理实验报告

实现一个简单语言(CPL)的编译器(解释器)

2013-06-14

空空如也

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

TA关注的人

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