- 浏览: 33247 次
- 性别:
- 来自: 南京
最新评论
文章列表
/*************************************************************************
* 创建型: Singleton, Builder, Abstract Factory, Factory Method, Prototype
* 结构型: Decorator, Composite, Proxy, Adapter, Facade
* 行为型: Template Method, Iterator, Observer, Strategy, Command, ChainOR */
package factory;
/**
...
- 2013-03-28 14:29
- 浏览 268
- 评论(0)
#include <stdio.h>
int main(){
int a,b;
a = 4;
a += (a++);
printf("%d\n",a);//9
6: a = 4;
0040D7B8 mov dword ptr [ebp-4],4
7: a += (a++);
0040D7BF mov eax,dword ptr [ebp-4]
0040D7C2 add eax,dword ptr [ebp-4]
0040D7C5 mov ...
- 2013-03-26 21:07
- 浏览 250
- 评论(0)
submit上去是Runtime Error,还需要解决。但是我自己电脑上运行好几个测试用例是正确的。
/**
* http://poj.org/problem?id=1002
*/
#include <iostream>
using namespace std;
/**
* 字符到数字的转换
*/
int valueToKey(char ch){
if(ch >= '0' && ch <= '9') return ch;
if(ch < 'A' || ch > 'Z') return -1;
if ...
- 2012-11-28 16:56
- 浏览 270
- 评论(0)
#include <iostream>
using namespace std;
/**
* 大数相乘,使用字符串解决
*/
/**
* 将字符转换成数字
*/
int ctoi(char ch){
if(ch < '0' || ch > '9'){
cout<<"transfer error"<<endl;
return -1;
}
return ch-48;
}
/**
* 将数 ...
- 2012-11-17 22:45
- 浏览 265
- 评论(0)
/*
* MaxSumSubArray.cpp
*
* Created on: 2012-6-20
* Author: jiyiqin
*
* 给定一个包含正数,负数,0的数组,求一个连续的子数组,使得其和最大
*/
#include <iostream>
using namespace std;
#define MIN_INT -10000
class MaxSumOfSubArray{
public ...
- 2012-11-16 23:05
- 浏览 345
- 评论(0)
/*
* MaxIncresingSubSequeuce.cpp
*
* Created on: 2012-6-24
* Author: jiyiqin
*
* 最长递增子序列,比如1,-1,2,-3,4,-2,6,-5, 返回 1,2,4,6,长度为4
*
*/
#include <iostream>
using namespace std;
class MaxIncresingSubSequence{
public:
/**
* 动态规划:
* 求解a[0...i]的最长递增子序列的问题可以转换成求解a[ ...
- 2012-11-16 21:42
- 浏览 259
- 评论(0)
#include <iostream>
using namespace std;
/**
* 题目:有N+2个数,N个数出现了偶数次,2个数出现了奇数次(这两个数不相等),
* 问用O(1)的空间复杂度,找出这两个数,不需要知道具体位置,只需要知道这两个值。
* */
/**
* 假设不相同的两个数字是x和y。他们的异或结果一定不是0,假设为xor。
* xor的最低位1就是他们不相同的其中一位,比如是第lowbit位。
* 那么x的lowbit位为1,y的lowbit位为0,或者相反。
*
* 我们将所有a[]中第lowbit位为1的所有元素异或起 ...
- 2012-11-16 17:08
- 浏览 503
- 评论(0)
/*
* quickSort.cpp(快速排序)
*
* Created on: 2012-4-21
* Author: jiyiqin
*
* 快速排序:
*
* 分治法:
* 和归并排序一样,快速排序也是基于分治思想的。
* 代价:
* 时间复杂度,期望为o(n log n), 但是最坏可能达到o(n^2)
* 空间复杂度,o(1),因为是基于交换元素的。
* 稳定性:
* depends
* 描述:
* 选择一个partitioner,然后两个指针从头尾各自开始扫描
* 如果前面的比他大,停止,如 ...
- 2012-11-15 15:10
- 浏览 228
- 评论(0)
/*
* mergeSort.cpp(归并排序)
*
* Created on: 2012-4-20
* Author: jiyiqin
*
* 归并排序:
* 分治法:
* 分治法思想,不断将待排序数组划分成两个部分。
* 直到问题最小(两个元素)。
* 然后将两个部分(各自有序)归并到一起。
*
* 代价:
* 归并的时间复杂度为o(n),整个排序算法:
* 时间复杂度:o(n log n)
* 空间复杂度:o(n),需要两个额外的数组,但是总大小至多为n
*
* 稳定性:
* ...
- 2012-11-15 14:59
- 浏览 219
- 评论(0)
/*
* BubbleSort.cpp(冒泡排序)
*
* Created on: 2012-4-22
* Author: jiyiqin
*/
#include <iostream>
using namespace std;
/*冒泡排序*/
class BubbleSort{
private:
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
public:
/**
* 冒泡排序
*/
void sort(in ...
- 2012-11-15 14:40
- 浏览 284
- 评论(0)
/*
* heapSort.cpp(堆排序)
*
* Created on: 2012-4-17
* Author: jiyiqin
*
* 稳定性:
* 堆排序类似于选择排序,所以不是一种稳定的排序。
*
* 代价:
* 但是其时间复杂度最差也是o(n log n),空间复杂度为1
*
* 算法描述
* 输入一个数组,构成一颗完全二叉树
*
* (1)构造最大堆:对数组中每一个非叶子节点(0~n/2)进行堆化;
* (2)迭代进行:
* 删除堆顶;
* 堆化整棵树;
...
- 2012-11-15 14:31
- 浏览 217
- 评论(0)
/*
* binarySearchTree.cpp
*
* Created on: 2012-4-17
* Author: jiyiqin
* 实现二叉查找树的构造,插入,删除,查找节点等基本操作。
*/
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
class BinarySearchTree{
private:
typedef struct treeNode{
int value ...
- 2012-11-15 12:55
- 浏览 168
- 评论(0)
#include <iostream>
using namespace std;
int count = 0;
#define MAX 4
void swap( char *a, char *b){
char tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
/**
* (全排列:A(m,n)且m==n)
* 全排列是这样的:第一个位置有n种方法,第二个位置n-1种方法...
* 从第一个位置开始,循环将每一个后面的值都交换到第一个位置来,
* 每次放好第一个位置之后,递归求解接下来后面的序列的全排列。
* 每次 ...
- 2012-11-13 13:13
- 浏览 246
- 评论(0)
#include <iostream>
using namespace std;
#define MAX 4
/**
* (组合: C(m,n))
* 从n个元素中选择m个元素,他们之间没有次序关系
* 以1,2,3,4为例,n=4,m=2。C[]存放组合结果。
* 先确定c[0]=1,然后再从剩下的3(n-i-1)个中选择1(m-1)个。
* 第二轮确定c[0]=2,然后再从剩下的2(n-i-1)个中选择1(m-1)个。
* 直到确定c[0]=3,再往下剩下的元素里面没有m-1个了,不能再选。
*
* 要点:每次都只能选择起始点后面的数字(避免重复),所以设置 ...
- 2012-11-13 13:09
- 浏览 226
- 评论(0)
/**
* 问题描述:
* 根据一颗二叉树的前序和中序遍历结果,重构这颗二叉树并输出后序遍历结果
*/
#include <iostream>
using namespace std;
typedef struct node {
int value;
struct node *left;
struct node *right;
}NODE;
NODE *root;
//节点分配 ...
- 2012-11-12 22:43
- 浏览 247
- 评论(0)