- 博客(12)
- 资源 (10)
- 收藏
- 关注
原创 5.查找最小的k个元素
题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。分析: 这道题最简单的思路莫过于把输入的n个整数排序,这样排在最前面的k个数就是最小的k个数。只是这种思路的时间复杂度为O(nlogn)。我们试着寻找更快的解决思路。 我们可以开辟一个长度为k的数组。每次从输入的n个整数中读入一个数。
2012-02-28 22:05:45 794
原创 4.在二元树中找出和为某一值的所有路径
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如 输入整数22和如下二元树 10 / \ 5 12 / \ 4 7则打印出两条路径:10, 12和10, 5, 7。二元树节点的数据结构定义为:struct Bina
2012-02-27 20:49:48 343
原创 二、Unicode简介(2)
一、在windows中使用printf因为windows中不存在标准输入和标准输出,所以你可以在windows程序中使用fprintf函数,但不能使用printf函数。但是你仍然可以使用sprintf和sprintf系列的其他函数来显示文本。sprintf函数定义如下:int sprintf (char *szBuffer,const char *szFormat,...)
2012-02-27 20:48:21 670
原创 二、Unicode简介(1)
简单来说,unicode用的是16位字符编码,而不是像ASCII那样7位代表一个字符,也不是计算机上常见的每个字符8位的方式。一、宽字符和c语言ASCII中字符类型举例:char c='A'; char * p="Hello"; char a[]="Hello";Unicode中字符定义:c语言中宽字符是基于wchar_t数据类型的(
2012-02-27 20:30:43 492
原创 3.求子数组的最大和
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。分析:该题为典型动态规划问题---最大连续字
2012-02-25 20:50:40 387
原创 一、起步
相信大家对Hello World都很熟悉,c语言输出它的程序是这样:#include int main(){ printf("Hello World!\n"); return 0;}我们编写的window程序 ,怎样输出它呢?和字符模式版本的程序一样,windows对应的“Hello World”程序包括了同样的组成部分,即include语句、程序入口、
2012-02-24 22:09:14 396
原创 2.设计包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。分析:看到这道题目时,第一反应就是每次push一个新元素时,将栈里所有逆序元素排序。这样栈顶元素将是最小元素。但由于不能保证最后push进栈的元素最先出栈,这种思路设计的数据结构已经不是一个栈了。在栈里添加一个成员变量存放最小元素(或最小
2012-02-24 21:33:25 502
原创 1.把二元查找树转变成排序的双向链表
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \4 8 12 16 转换成双向链表4=6=8=10=12=14=16。 首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{
2012-02-24 21:10:16 591
原创 c语言改变字体颜色
VC中要调用windows API来改变字体颜色。下面举个例子:#include #include int main(void) { printf("Hello\n");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);printf("Hello\
2012-02-22 21:04:36 10542 1
原创 c语言清屏函数
在Turbo C中,可以调用conio.h头文件中的clrscr()函数来清屏。但是VC中,并没有这个函数。所以在VC中,可以这样做:#include void main(){system("cls");}
2012-02-22 20:05:56 22699 1
转载 c语言VC中console下移动光标位置
#include #include #include void gotoxy(int x,int y){COORD C;C.X = x;C.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),C);}
2012-02-22 18:47:33 3307 2
转载 计算星期几的公式
如何计算某一天是星期几?—— 蔡勒(Zeller)公式 历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(Zeller)公式。即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,
2012-02-22 15:30:24 11228
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人