自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

山高月小

纸上得来终觉浅,绝知此事要躬行

  • 博客(144)
  • 资源 (1)
  • 收藏
  • 关注

原创 [Leetcode] #32 Longest Valid Parentheses

最近发现Leetcode变化不少,取消了按年份排列,变成了数字序列。另外免费的试题都是网友提供的了,另有10道题需要收费才能做。打开这个题目,发现原来提交的代码运行时间800多ms,应该是算法本身有问题。于是重写了一下,变成300多ms啦。思路是用int left代替栈了,只要知道左括号的个数就行了。当匹配一个右括号后,不仅要看包含的括号个数,还要判断紧挨着的括号是不是完整的。publ

2015-01-03 23:18:00 611

原创 [LeetCode] Next Permutation

题目是“下一个排列”,已知一组数字,可以用来排列组合成若干整数,要求寻找比当前整数大的下一个排列,如果已经是最大值的那个排列,则返回最小的排列思路是寻找一个逆序,然后将后面的数字重新排列。首先从倒数第二的数字开始,在后面寻找比它大的数字,如果找到,交换位置。注意交换位置后,还要把后面的数字排序,这样才能得到紧挨着的那个数字。代码如下:public class Solution {

2014-12-17 20:32:07 596

原创 [LeetCode] Substring with Concatenation of All Words

利用Hash的想法很早就想出来了,但是

2014-06-07 22:08:13 640

原创 [LeetCode] Divide Two Integers

这个问题比想象的要难很多

2014-05-18 18:49:22 542

原创 [LeetCode] Implement strStr()

zheclass Solution {public: char *strStr(char *haystack, char *needle) { if (haystack == NULL || needle == NULL) { return NULL; } char* tempHaystack = haystack; char* tempNeedle = ne

2014-05-18 12:12:07 508

原创 [LeetCode] Remove Element

和上一题类似,好像是数组链表的操作。public class Solution { public int removeElement(int[] A, int elem) { if (A == null || A.length == 0) { return 0; } int count = 0;

2014-05-17 11:47:55 424

原创 [LeetCode] Remove Duplicates from Sorted Array

感觉比较简单,不知道还有没有genh

2014-05-17 10:20:10 422

原创 [LeetCode] Reverse Nodes in k-Group

在上一个题的基础上改动了一下,因为内存shouxian

2014-05-16 21:09:41 517

原创 [LeetCode] Swap Nodes in Pairs

还是链表的操作,认真一点就好。还是在链表前面多加了ji

2014-05-11 16:05:55 470

原创 [LeetCode] Merge k Sorted Lists

为了防止空链表加入计算,如果遇到链表为空的时候,就删除掉,并重新遍历其他链表

2014-05-11 00:13:58 476

原创 [LeetCode] Generate Parentheses

这种问题先想到的是递归,

2014-05-04 20:38:15 477

原创 [LeetCode] Valid Parentheses

第一感是用个stack,然后压栈出栈,看看是不是匹配。

2014-05-03 23:46:30 495

原创 [LeetCode] Remove Nth Node From End of List

链表问题。这种问题主要是指针的操作,xuy

2014-05-03 18:28:11 464

原创 [LeetCode] Letter Combinations of a Phone Number

这个问题大概是考察递归。写了一个递归的

2014-05-03 11:44:41 485

原创 [LeetCode] 4Sum

这个问题开始的思路还是对的,先求出任意两个数的和,baoc

2014-05-02 10:02:13 537

原创 [LeetCode] 3Sum Closest

这个还是用到了以前的一个技巧,先排序,然后从两头往中间找最合适的数。buguo

2014-04-27 17:15:27 446

原创 OSGi版本的HelloWorld实践

学习一门语言最经典的开端都是“HelloWorld”,因为

2014-04-26 20:43:31 2187

原创 [LeetCode] 3Sum

这个问题还是《编程之美》

2014-04-26 12:23:07 522

原创 设计模式学习笔记-Factory Method

几年前学设计模式,没有坚持下来,

2014-04-20 22:50:30 504

原创 [LeetCode] Longest Common Prefix

这个题没有搞清楚要考察什么,虽然在输入参数的检查上面错了几次,但hais

2014-04-20 21:09:30 540 1

原创 [LeetCode] Roman to Integer

这道和公司出的比较类似,而且不用判断异常情况

2014-04-20 01:50:11 409

原创 [LeetCode] Integer to Roman

这道题主要难点是罗马数字的

2014-04-20 01:28:22 411

原创 [LeetCode] Container With Most Water

这道题初看要遍历所有可能就能

2014-04-19 23:24:24 412

原创 [LeetCode] Regular Expression Matching

比atoi还麻烦,开始自己造轮子了。

2014-04-19 01:11:26 743

原创 [LeetCode] Palindrome Number

要是面试遇到这道题,估计要挂了,想了class Solution {public: bool isPalindrome(int x) { if (x < 0) { return false; } if (x >= 1000000000) { if (x / 100000 % 10 == x % 100000 / 10000) { x = x % 10

2014-04-17 21:45:49 510 1

原创 [LeetCode] String to Integer (atoi)

没有和标准的程序比较,有点choulclass Solution {public: int atoi(const char *str) { int result = 0; int sign = 1; // trim space while (*str == ' ') { ++str; } // get sign if (*str == '-')

2014-04-14 20:29:21 462

原创 [LeetCode] Reverse Integer

class Solution {public: int reverse(int x) { int result = 0; while(x != 0) { result *= 10; result += x % 10; x /= 10; } if (x <

2014-04-13 14:17:32 396

原创 [LeetCode] ZigZag Conversion

索引找规律的问题,非首尾两行的需要加一个mid元素,其他的步长都是

2014-04-13 13:43:14 424

原创 我对C++ Traits编程技法的一点点理解

第一次听说traits是在一次电话面试中,当时还没有听说过这个词。之后查过资料,但也不是十分明白,直到今天重新看了一下《STL源码剖析》,稍微有一些想法。1. traits是模板编程里面的一个编程技法。可能因为不是面向对象的,所以算不上一种设计模式。虽然traits本身一般实现为模板(itrator_traites,以及__type_traits等),但和智能指针(auto_ptr)这种比较大

2014-04-13 01:37:23 2310

原创 [LeetCode] Longest Palindromic Substring

首先英语class Solution {public: string longestPalindrome(string s) { int length = s.size(); char *s1 = new char[length]; char *s2 = new char[length]; for (

2014-04-12 12:07:32 565

原创 [LeetCode] Add Two Numbers

链表的操作,修改了好多次/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:

2014-04-12 12:00:52 374

原创 [LeetCode] Longest Substring Without Repeating Characters

在后面发现重复的字符后,就把前面的

2014-04-12 11:56:00 395

原创 [LeetCode] Median of Two Sorted Arrays

class Solution {public: double findMedianSortedArrays(int A[], int m, int B[], int n) { int C[m + n]; int i = 0, j = 0, index = 0; int mid = (m + n + 1) / 2; while(true) { if (i < m

2014-04-12 11:49:25 394

原创 [LeetCode] Two Sum

Leetcode第一题,同编程之美2.12,给

2014-04-12 11:32:14 377

原创 设计模式学习笔记-Composite

Compoite表示的是“整体-部分”的关系,但不仅仅如此,否则简单的组合就可以完成。这个模式主要是使得用户对单个对象和组合对象的使用具有一致性。 《设计模式》书上举的例子是Graphic-Picture,但我觉得这里用“文件夹-文件”最直观。 文件夹里能包括文件夹和文件, 文件是“Leaf”子类,文件夹是“Composite”类。当需要遍历文件夹的时候,用这样一种“递归”的关系是很优雅的方式。 一般Composite类都包含一个List的容器,其中必有一个函数要递归处理这里面的对象。 我目前理解这

2011-05-12 21:54:00 580

原创 分布式开发的几点基础知识

开发人员要多思考,才能把知识融会贯通。关于分布式的一些概念虽然知道,但都比较零散,今天看《面向模式的软件架构(卷4)》才清楚了一些,总结如下。 技术总是演进的,按照时间顺序来说吧。 20世纪80年代后期和90年代初期,CORBA是典型的“分布式对象计算”中间件,其中“对象”是关键。也许那个时候C++等面向对象编程正火。 20世纪90年代中后期,EJB出现了,被称为“组件”中间件。其中“组件”和“容器”是重要的概念。 后来,又出现了JMS这样的面向“消息”的中间件,但这应该只是同步和异步上的设计问题,

2011-05-11 23:36:00 900

原创 C++ CLI 如何打开并读取文件

相关链接: http://msdn.microsoft.com/en-us/library/61097ykx.aspx 环境:Microsoft Visual C++ 2010 Express 步骤: 1. 从Toolbox里拖拽一个OpenFileDialog出来,到Form1.h[Design]下面的一个工具条上,应该变成openFileDialog1 2. 在menuStrip1里添加一个菜单,比如Open,双击一下Open会自动产生一个方法 3. 在方法里面添加红色的代码: priva

2011-05-11 10:40:00 3103

原创 设计模式学习笔记-Abstract Factory

这是23个设计模式的第一个,因此按照惯例,第一章第一节总会被看很多次。 但是我在实际工作中并没有遇到这个模式,也许是因为太麻烦的原因。 有“工厂”就有“产品”,所以这个模式里面主要是Factory和Product两种类,一般Factory和Product都会有自己的继承结构,即需要定义抽象基类和具体的实现类。 其实“工厂”只是在client和product之间加入了一层解耦合的类。而且client使用的可以是基类的指针或引用,可以充分利用多态的好处。 总之,这个模式并没有太多的技巧在里面,也许是因为

2011-05-08 22:50:00 575 1

原创 设计模式学习笔记-Singleton

这个应该是比较简单的一个设计模式,也是我接触的第一个模式。要点是构造函数声明为私有,定义一个指向自己的静态指针,在合适的时候new一个对象。简单的代码如下: 1: class Singleton { 2: public: 3: static Singleton* instance() 4: { 5: if (_instance == NULL)

2011-05-07 15:01:00 478

原创 C++指针比较的含义

这个问题我是在《C++必知必会》条款28里面看到的。C++指针比较的不是地址,而是对象同一性问题。即指针地址可以不同,而比较的结果却相同,因为它们指向的是同一个对象。这个问题用多重继承比较直观: 1: #include 2:  3: using namespace std; 4:  5: class A { 6: int a;

2011-05-01 19:59:00 1141

汉诺塔Visual C++作业

Visual C++作业 手动移动和自动演示功能

2010-07-10

空空如也

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

TA关注的人

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