- 博客(12)
- 资源 (16)
- 收藏
- 关注
原创 用递归方式将栈内容翻转
比如:原来栈中从顶到底的元素分别为1, 2, 3, 4, 5。.翻转后栈中从顶到底应分别为5, 4, 3, 2, 1。#include using namespace std;void addToStack(stack &buf, int value){ if (buf.empty()) { buf.push(value);
2013-03-27 00:28:52 1001
原创 整理字符串
void removeSpace(char *a){ int n = strlen(a); int begin = 0; int end = n - 1; for (int i = 0; i { if (a[i] != ' ') { begin = i;
2013-03-26 23:42:57 746
原创 打印二叉树每一层节点数量
#include #include using namespace std;struct Node{ int value; Node *left; Node *right;};void printNumOfEveryLevel(Node *root){ if (NULL == root) {
2013-03-26 21:50:03 2522
原创 数组的最大子序列和
int maxSum(int a[], int n){ int max = a[0]; int total = a[0]; for (int i = 1; i { if (total { total = a[i]; }
2013-03-26 21:34:16 638
原创 字符串移动
字符串移动(字符串为*号和26个字母的任意组合,把*号都移动到最左侧,把字母移到最右侧并保持相对顺序不变),要求时间和空间复杂度最小void fun(char a[], int n){ int q = n; int p = n; bool firstTime = true; while (true) {
2013-03-25 23:49:20 822
原创 链表相邻元素翻转
链表相邻元素翻转,如a->b->c->d->e->f-g,翻转后变为:b->a->d->c->f->e->gstruct Node{ char value; Node *next;};Node* reverse(Node *head){ if (NULL == head || head->next == NULL)
2013-03-25 22:17:19 855
原创 查找有毒水
最少需要10只。思路:将1000瓶水按照二进制从1编号到1000。这样最大数的二进制位数为10。用10只老鼠分别对应二进制的第0到第9位,每只老鼠喝下该二进制位为1的瓶子的水,如果该老鼠一周后死掉,就说明有毒瓶的该二进制位为1,否则说明为0。这样就能确定有毒瓶的二进制数。
2013-03-25 01:32:43 1255
原创 限定条件排序
#include using namespace std;void sort(int a[], int n){ int zeroPos = 0; for (int i = 0; i { if (a[i] == 0) { zeroPos = i;
2013-03-25 01:16:30 1102
原创 循环位移
一个长度为n的整形数组,将其循环右移k位。要求时间复杂度为O(n),空间复杂度为O(1)。void reverse(int a[], int left, int right){ while (left { swap(a[left], a[right]); left++; right--;
2013-03-19 22:12:34 683
原创 大数阶乘
输入一个小于1000的正整数,打印n! = 1*2*3*...*n的值。#include #include using namespace std;const int maxn = 3000;void fun(int n){ int i, j; int f[maxn]; memset(f, 0, sizeof(f));
2013-03-13 01:30:03 516
原创 周期字符串
输入一个字符串,计算最小周期。如abcabcabc以3为最小周期,ababab以4为最小周期,abcdefg最小周期为7。#include #include using namespace std;int fun(char a[]){ if (NULL == a) { return -1; }
2013-03-12 23:48:08 783
原创 按递增顺序打印数字n所有排列
给定某属于1-9的正数n,顺序打印出所有排列。如:n=3,则顺序打印出123, 132, 213, 231, 312, 321。#include using namespace std;struct node{ int value; node *prev; node *next;};void print(const node * const head
2013-03-02 22:59:30 1416
exceptional c++ style中文版 pdf 刘未鹏译
2010-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人