自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (16)
  • 收藏
  • 关注

原创 二叉树最小高度

给一个tree,定义height是根节点到叶子节点的距离中最短的一个,如何求出这个距离。int height(Node *root){ if (root == NULL) { return 0; } if (root->left == NULL) { return 1 + height(root->right); } else if (root->righ

2013-10-11 23:02:08 3939

原创 不用+、-、×、÷做加法

写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。int sum(int a, int b){ int result = 0; int factor = 1; int c = 0; while ((a != 0) || (b != 0)) { if ((a&factor) == 0 && (b&factor) == 0) {

2013-10-09 00:56:55 772

原创 RGB字符排序

给定一个字符串里面只有"R" "G" "B" 三个字符,请排序,最终结果的顺序是R在前 G中 B在后。要求:空间复杂度是O(1),且只能遍历一次字符串。void fun(char a[], int n){ int i = -1; while (a[i+1] == 'R') { i++; } int j = n; while (a[j-1] == 'B') { j

2013-10-07 00:36:03 2265 1

原创 密码组合

字母a-z,数字0-9,现需要其中任意3个作为密码,请输出所有可能组合。void printAll(char outPut[], int k, int begin){ if (begin == k) { for (int i = 0; i < k; i++) { cout << outPut[i] << " "; } cout << endl; ret

2013-10-06 22:38:11 2513

原创 数组中缺少的数

数组a[n]里存有1到n的所有树,除了一个数removed,找出这个missing的树。要求时间复杂度O(n),空间复杂度O(1)。int fun(int a[], int n){ for (int i = 0; i < n; i++) { a[(a[i]%(n+1))-1] += n+1; } for (int i = 0; i < n; i++) { if

2013-10-06 19:48:22 1342

原创 二叉树和最大的子树

给一个二叉树,每个节点都是正或负整数,如何找到一个子树,它所有节点的和最大?struct Node{ int value; Node *left; Node *right;};int result = 0;bool maxSet = false;void postOrderVisit(Node *root){ if (NULL == root) { ret

2013-10-05 23:57:48 3387 3

原创 杨氏矩阵查找

一个m*n的矩阵,从左到右从上到下都是递增的,给一个数elem,求是否在矩阵中。bool find(int **a, int m, int n, int k){ int (*p)[n] = (int (*)[n])a; int i = 0; int j = n-1; while (i = 0) { if (p[i][j] == k) { return true;

2013-10-05 21:25:29 762

原创 链表位置调整

有一个长度为奇数的单向链表,要求将后半部分倒序插入前半部分。如:将1->2->3->4->5->6->7 变成 1->7->2->6->3->5->4。不能用额外空间。struct Node{ int value; Node *next;};void fun(Node *head, int len){ int count = len/2; Node *tail = hea

2013-10-05 20:13:07 859

原创 判断字符串是否是回文

判断一个字符串中的字母是否是回文,不区分大小写。如:"A man, a plan, a canal: Panama"是回文。bool isLetter(char a){ if (a = 'a') { return true; } if (a = 'A') { return true; } return false;}bool isLowerCase(char

2013-10-05 12:16:54 956

原创 链表翻转

给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6struct Node{ int value; Node *next;};Node* reverseList(Node *head, int k){ if (NULL == head || k <

2013-10-04 22:50:33 1596 2

原创 有序数组中某个数的起始和终止位置

给定一个排好序的整数数组以及某个值n。查找值n的起始和终止位置。如:{0, 0, 1,  1, 1, 5, 5, 6, 6, 6, 6, 7, 11},n=5,输出{5, 6}。要求时间复杂度小于O(n)。void fun(int a[], int len, int n){ int left = 0; int right = len-1; while (left < right-1

2013-10-04 18:45:44 1505

原创 查找二叉搜索树中小于某个节点的最大值

Node* rightMost(Node *n){ if (n->right == NULL) { return n; } while (n->right) { n = n->right; } return n;}Node *predecessor(Node *n){ if (NULL == n) { return NULL; } if (n->le

2013-10-04 12:04:47 2569

原创 合并两个排好序的单向链表

Node* mergeLists(Node *a, Node *b){ if (a == NULL) { return b; } if (b == NULL) { return a; } Node *head = NULL; if (a->value value) { head = a; a = a->next; } else { head = b;

2013-10-04 10:36:15 744

原创 计算四则运算表达式

给定一个四则运算表达式,计算返回值,表达式不带括号。如:"7-12/6", "1000-5*6/3*2+1"。struct Node{ int value; bool symbol; Node *next;};int fun(char a[], int n){ Node *head = new Node(); head->value = a[0] - '0'; h

2013-10-03 23:39:54 779

原创 交换单向链表的头结点和第n个节点

void swapNth(Node **head, int n){ if (head == NULL || *head == NULL || n == 1) { return; } int count = 0; Node *prev = *head; while (prev && count < n-2) { prev = prev->next;

2013-10-03 13:54:42 1574

原创 查找链表差集

已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。struct node{ int elem; node *next;};void difference(node **L

2013-10-01 23:35:48 1308

深度探索C++对象模型(清晰版)

向具备多年C++开发经验的行家推荐本书,如果你想深入理解C++底层机制。

2011-04-15

exceptional c++ style中文版 pdf 刘未鹏译

C++大师 Herb Scutter通过40个编程问题,使读者不仅知其然,更要知其所以然,帮助程序设计人员在软件中寻找恰到好处的折中。适合中高级C++程序员阅读。

2010-09-26

PHP技术内幕中文版 pdf--黑皮书系列

全面认识网站编程和PHP。编写WINDOWS和UNIX中可靠而高效的代码。

2010-09-20

设计模式中文版pdf

不错的设计模式教程。讲解清晰,而且很全面。

2010-09-20

数据结构C语言版pdf 清华严蔚敏著

数据结构 c语言版 清华大学 严蔚敏著 大部分高校采用的数据结构教材

2010-09-20

编译原理 陈火旺著

陈火旺主编 编译原理教材 高等学校电子信息类规划教材

2010-09-17

计算机程序的构造和解释原书第2版pdf

每一位严肃的计算机科学家都应该阅读这本书。适合所有希望深刻理解计算机科学的人们。

2010-08-26

C语言深度解剖 解开程序员面试笔试的秘密

一个资深软件工程师的作品,内容讲解较透彻,一定程度弥补了教材中未深入的内容。

2010-08-25

编程珠玑第二版pdf中文

近二十年来众多大师级程序员一致推崇的作品

2010-08-13

UML参考手册pdf中文版

UML参考手册,讲述UML基本概念,为UML的深入理解提供一个起点.

2010-08-13

空空如也

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

TA关注的人

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