`
jiq408694711
  • 浏览: 33247 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论
文章列表
/************************************************************************* * 创建型: Singleton, Builder, Abstract Factory, Factory Method, Prototype * 结构型: Decorator, Composite, Proxy, Adapter, Facade * 行为型: Template Method, Iterator, Observer, Strategy, Command, ChainOR */ package factory; /** ...
#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 ...
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 ...
#include <iostream> using namespace std; /** * 大数相乘,使用字符串解决 */ /** * 将字符转换成数字 */ int ctoi(char ch){ if(ch < '0' || ch > '9'){ cout<<"transfer error"<<endl; return -1; } return ch-48; } /** * 将数 ...
/* * MaxSumSubArray.cpp * * Created on: 2012-6-20 * Author: jiyiqin * * 给定一个包含正数,负数,0的数组,求一个连续的子数组,使得其和最大 */ #include <iostream> using namespace std; #define MIN_INT -10000 class MaxSumOfSubArray{ public ...
/* * 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[ ...
#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的所有元素异或起 ...
/* * quickSort.cpp(快速排序) * * Created on: 2012-4-21 * Author: jiyiqin * * 快速排序: * * 分治法: * 和归并排序一样,快速排序也是基于分治思想的。 * 代价: * 时间复杂度,期望为o(n log n), 但是最坏可能达到o(n^2) * 空间复杂度,o(1),因为是基于交换元素的。 * 稳定性: * depends * 描述: * 选择一个partitioner,然后两个指针从头尾各自开始扫描 * 如果前面的比他大,停止,如 ...
/* * mergeSort.cpp(归并排序) * * Created on: 2012-4-20 * Author: jiyiqin * * 归并排序: * 分治法: * 分治法思想,不断将待排序数组划分成两个部分。 * 直到问题最小(两个元素)。 * 然后将两个部分(各自有序)归并到一起。 * * 代价: * 归并的时间复杂度为o(n),整个排序算法: * 时间复杂度:o(n log n) * 空间复杂度:o(n),需要两个额外的数组,但是总大小至多为n * * 稳定性: * ...
/* * 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 ...
/* * heapSort.cpp(堆排序) * * Created on: 2012-4-17 * Author: jiyiqin * * 稳定性: * 堆排序类似于选择排序,所以不是一种稳定的排序。 * * 代价: * 但是其时间复杂度最差也是o(n log n),空间复杂度为1 * * 算法描述 * 输入一个数组,构成一颗完全二叉树 * * (1)构造最大堆:对数组中每一个非叶子节点(0~n/2)进行堆化; * (2)迭代进行: * 删除堆顶; * 堆化整棵树; ...
/* * 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 ...
#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种方法... * 从第一个位置开始,循环将每一个后面的值都交换到第一个位置来, * 每次放好第一个位置之后,递归求解接下来后面的序列的全排列。 * 每次 ...
#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个了,不能再选。 * * 要点:每次都只能选择起始点后面的数字(避免重复),所以设置 ...
/** * 问题描述: * 根据一颗二叉树的前序和中序遍历结果,重构这颗二叉树并输出后序遍历结果 */ #include <iostream> using namespace std; typedef struct node { int value; struct node *left; struct node *right; }NODE; NODE *root; //节点分配 ...
Global site tag (gtag.js) - Google Analytics