- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 输出链表中倒数第k个节点
输入一个单向链表,输出该链表中倒数第k个节点。/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include using namespace std;int array[] = {5, 7, 6, 9, 11, 10, 8};const int size = sizeof array
2011-06-30 19:10:00 952
原创 反转英语句子中的单词顺序
给出一个英文句子,翻转句子中单词的顺序,字符顺序也保持不变例如,输入"I am a student.",输出:"student. a am I"/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include #include using namespace std;char
2011-06-30 18:48:00 2877 2
原创 就地逆转输出链表
利用递归的特性来实现,非常easy/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include using namespace std;int array[] = {5, 7, 6, 9, 11, 10, 8};const int size = sizeof array / siz
2011-06-30 13:25:00 604
原创 逆转链表
利用三个节点: 第一个节点用于返回,也就是新的链表头节点; 第二个节点是当前节点,第三个节点是当前节点的next节点 code如下 /* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include using namespace std; int array[] = {5, 7, 6, 9, 11
2011-06-30 13:21:00 699
原创 判断整数序列是不是二元查找树的后续遍历
二元查找树后续遍历特点:最后一个元素,将数组从[0...N-2]划分为两部分,前一部分所有元素比最后这个元素要小,后面的所有元素比这个元素都要大,利用递归不难写出code/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */#include using namespace std;int ar
2011-06-30 12:19:00 433
原创 判断链表是否存在环
对于这个经典问题,最经典的解法莫过于快慢指针 #include using namespace std;struct Node{ Node(int i = 0, Node *n = NULL) : item(i), next(n) {} int item; Node *next;};int array[] = {1, -2, 3, 7, -4, 10, 2,
2011-06-29 22:01:00 374
原创 常数时间取得min值的栈
设计这样的栈,常数时间内操作min,push,pop/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include #include #include #include using namespace std;class Stack{public: Stack(int i
2011-06-29 14:29:00 537
原创 找出数组里大于等于左侧、小于等于右侧的所有数
例如,序列:3, 4, 2, 5, 8, 9, 10输出:8,9,10/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include #include #include #include using namespace std;#define INF 65535i
2011-06-25 09:52:00 1564
翻译 输入一个字符串,打印出该字符串中字符的所有排列
例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include #include using namespace std;char array[] = {a, b
2011-06-24 19:46:00 4764 2
原创 输入一颗二元查找树,将该树转换为它的镜像
递归的解法:/* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include #include #include using namespace std;struct Node { Node(int i = 0, Node *l = NULL, Node *r = NULL)
2011-06-23 22:13:00 756
原创 给定push序列,判断栈的pop序列
题目:输入两个整数序列,其中一个序列表示栈的push序列,判断另一个序列有没有可能是对应的pop序列。 思路:一直压栈,直至其top为pop序列的下标所指元素 /* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include #include using namespace std; con
2011-06-23 21:30:00 837
原创 输入两个整数n和m,从数列1,2,3,...,n中选出和为m的所有组合
背包问题,用递归来解,简单易于理解 void print(int size, bool *flag) { for(int i = 0; i < size; i++) { if(flag[i]) cout << i + 1 << " "; } cout << endl; } void Bag(int size, bool *flag, int pos, int sum) {
2011-06-22 20:54:00 848
翻译 寻找最大的K个数
解法五复杂度O(n),应用场合为,所有的N个数都是正整数,取值范围不大。代码如下:#include #include #include #include using namespace std;#define MAX 65535int result[MAX];vector ivec;int array[] = {1, 2, 100, 288, 209, 23
2011-06-20 20:01:00 426
翻译 求最大公约数
#include using namespace std;int gcd(int x, int y){ return (!y) ? x : gcd(y, x % y);}int gcd2(int x, int y){ if(x < y) return gcd2(y, x); if(y == 0) return x; retur
2011-06-20 19:16:00 333
翻译 找出字符串中只出现一次的第一个字符
#include using namespace std; char str[] = "abaccdeff"; const int size = 26; int hashTable[26]; void FindFirstOne(char *str) { char* pStr = str; while(*pStr != '/0') { hashTable[*pStr - 'a']+
2011-06-17 18:03:00 452
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人