
面试/ACM/相关
文章平均质量分 51
wangxin110000
这个作者很懒,什么都没留下…
展开
-
排序算法(二)冒泡排序
#include using namespace std; #define N 400 void bubleSort(int num,int *p); void print(int num,int *p); int Number[N]; int main() { for(int i=0;i<N;i++) { Number[i]=N-i; cout<<Number[i]<<"\t";原创 2014-04-16 15:53:56 · 477 阅读 · 0 评论 -
面试杂题(九)打印一到最大的n位数
void printOne2MaxNDigit(int n) { if (n<=0) { return; } int *pNum=new int[n+1]; memset(pNum,0,sizeof(int)*(n+1)); while(pNum[0]!=1) { //打印 for (int i=1;i<=n;i++) { if (pNum[i]!=0)原创 2014-05-30 16:27:23 · 622 阅读 · 0 评论 -
排序算法(七)基数排序
从低位到高位排序,用hash来实现 #include #define N 400 using namespace std; typedef struct Hdata { int data; struct Hdata *next; }Node; void radixSort(int *pData,unsigned int nLen); bool GetMax(int *p原创 2014-05-21 18:56:45 · 582 阅读 · 0 评论 -
排序算法(六)快速排序
void quickSort(int *pData,int nLow,int nHigh) //递归 { if (nLow<nHigh) { int i=partition(pData,nLow,nHigh); quickSort(pData,nLow,i-1); quickSort(pData,i+1,nHigh); } } void swap(int *pD原创 2014-05-21 10:51:15 · 623 阅读 · 0 评论 -
面试题(十一)最长递增子序列
给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4原创 2014-06-23 17:04:31 · 1222 阅读 · 0 评论 -
面试题(十)连续子数组的最大和、最大差
这个题目是个很常见的面试题,主要的解法之一是原创 2014-06-23 15:38:33 · 1218 阅读 · 0 评论 -
(杂)百度实习的一道题链表逆序,合并两个有序链表
关于链表逆序,原创 2014-06-25 15:52:47 · 783 阅读 · 0 评论 -
链表(一)链表的新建、反转、释放
#include using namespace std; //创建一个链表,释放链表的内存,将链表反转 typedef struct node { struct node *next; int num; }Node; Node * create(int num); void print(Node *head); void freeNode(Node *&head);原创 2014-04-16 19:00:42 · 705 阅读 · 0 评论 -
面试题(十二)谈谈递归
递归程序简洁,但是不是很好理解,原创 2014-06-26 18:35:51 · 2186 阅读 · 0 评论 -
面试题(十四)Morris遍历
二叉树的Morris遍历,原创 2014-06-29 11:14:20 · 976 阅读 · 0 评论 -
面试杂题(五)从尾到头打印链表
#include #include typedef struct node { int nData; struct node *next; }Node; Node * createLinklist(int *pData,int nLen); void printLinklist(Node *pHead); void printLinklistReverse(Node *pHead); vo原创 2014-05-27 15:49:11 · 529 阅读 · 0 评论 -
排序算法(一)插入排序
#include using namespace std; bool insertSort(int num, int *pNum ); void insert(int num , int *pNum); void print(int num,int *p); //插入排序 int number[400]; int main() { for (int i=0;i<400;i++) { n原创 2014-04-16 13:28:20 · 644 阅读 · 0 评论 -
面试杂题(七)二维数组中寻找
// 1 2 8 9 // 2 4 9 12 // 4 7 10 13 // 6 8 11 15 bool findNR(int **pArray,int nRowSize,int nColSize,int k) { int nRowIndex=0; int nColIndex=nColSize-1; while(nRowIndex>=0&&nRowIndex=0&&nCo原创 2014-05-29 22:25:28 · 660 阅读 · 0 评论 -
面试杂题(六)替换空格
输入:we are happy 输出we%20are%20happy 要求原创 2014-05-29 20:55:08 · 662 阅读 · 0 评论 -
一个隐蔽的Bug
两段代码,都是插入排序的代码原创 2014-09-03 10:13:21 · 633 阅读 · 0 评论 -
数据结构基础(三)哈希表的实现
#pragma once #include #define N 10 using namespace std; typedef struct node { int val; struct node *next; }Node; void freeLinklist(Node *&head); void freeLinklist(Node *&head) { if (head==NULL)原创 2014-04-28 16:49:35 · 621 阅读 · 0 评论 -
ACM(一)大数相乘
#include using namespace std; void arrayPrint(int *p); void Muli(char *num1,char *num2); int main() { char num1[100]; char num2[100]; cin>>num1>>num2; Muli(num1,num2); getchar();原创 2014-05-06 11:33:23 · 1452 阅读 · 0 评论 -
排序算法(三)选择排序
#include using namespace std; #define N 400 void chooseSort(int num,int *p); void print(int num,int *p); int findmax(int num,int *p); int Number[N]; int main() { for(int i=0;i<N;i++) { Number[i]=N原创 2014-04-16 21:34:04 · 471 阅读 · 0 评论 -
排序算法(四)希尔排序
希尔排序是对插入排序的改进 “ 例如,假设有这样一组数[ 13 14 94 33 82 25 59 94 65 23 45 27 73 25 39 10 ],如果我们以步长为5开始进行排序,我们可以通过将这列表放在有5列的表中来更好地描述算法,这样他们就应该看起来是这样: 13 14 94 33 82 25 59 94 65 23 45 27 73 25 39 10 然后我们对每原创 2014-04-18 10:41:39 · 675 阅读 · 0 评论 -
排序算法(五)堆排序
堆分最小堆,最大堆 最小堆是原创 2014-04-22 14:16:35 · 648 阅读 · 0 评论 -
二叉树(二)二叉树的层序遍历
二叉树的层次遍历是通过一个原创 2014-04-23 15:59:16 · 480 阅读 · 0 评论 -
二叉树(一)利用数组初始化二叉树,并实现前序中序后序遍历
这是一个利用数组来初始化一个二叉树,初始化的树是一个满原创 2014-04-22 19:53:32 · 2093 阅读 · 0 评论 -
数据结构基础(一)栈的实现
class stack { private: int stackTopIndex; int *stackBase; int size; public: stack(int num) { if (num>=1) { size=num; stackBase=new int[size]; stackTopIndex=-1; } e原创 2014-04-23 09:44:11 · 615 阅读 · 0 评论 -
数据结构基础(二)队列的实现
使用链表实现的队列:typedef struct queueNode { int val; queueNode* next; }Node; class queue { public: queue() { front=NULL; back=NULL; }; bool empty() { if (front==NULL||back==NULL) { return t原创 2014-04-23 12:04:42 · 547 阅读 · 0 评论 -
二叉树(三)二叉树的高度、交换两个子树左右节点
比较简单: int depth(Node *head)//空二叉树的深度为-1,只有根节点为0,看连接线的个数就是其深度 { if (head==NULL) { return -1; } return max(depth(head->left),depth(head->right))+1; }原创 2014-04-24 14:42:07 · 1390 阅读 · 0 评论 -
二叉树(四)删除二叉树
如何删除一个二叉树,释放每个节点的原创 2014-04-24 16:56:32 · 1018 阅读 · 0 评论 -
二叉树(五)二叉树中某一路径之和为某一整数
思路: 对于二叉树中的某一节点,如果是叶子节点,将其加入到path中,(一个vector)原创 2014-05-10 16:06:09 · 573 阅读 · 0 评论 -
位操作(一)交换两个数不用中间变量
先来说下异或 1^1=0 0^1=原创 2014-04-25 10:52:16 · 776 阅读 · 0 评论 -
字符串处理基础(一)反转,循环移动
#pragma once using namespace std; void inverse(char *p); void printString(char *p); void rightMove(char *p,int n); void inverse2(char *p); void inverse(char *p) { if (p==NULL) { return; } if (*p原创 2014-04-25 23:39:01 · 839 阅读 · 0 评论 -
排序算法(六)归并排序
#include using namespace std; #define N 50000 void mergearray(int a[], int first, int mid, int last, int temp[]); void printArray(int *p,int size); void mergeSort(int a[],int first,int last,int temp[原创 2014-04-27 01:00:32 · 564 阅读 · 0 评论 -
面试杂题(四)有序数组中连续k的个数(更高效的方法) .
这是二分搜索的一个应用,找到FirstK以及LastK原创 2014-05-19 20:01:28 · 656 阅读 · 0 评论