算法
文章平均质量分 58
疯狗大队大队长
这个作者很懒,什么都没留下…
展开
-
链表翻转
思路:两两交换,每交换一次指针向后移动一次,最后断开原来的头指针,再加上新的头指针。 #include #include typedef struct Listnode{ struct Listnode *next; int n; }ListNode, *List; void PrintList(ListNode *head); //List ReverseList(List he原创 2014-02-28 11:22:22 · 675 阅读 · 0 评论 -
无头单链表删除一个节点
这是一个类似脑筋急转弯的题目,常规方法是直接将节点删除然后再将前面一个节点和后面的节点接上。但是由于本题目中的链表没有头,所以必然不是用这个方法。本题的技巧在于:只需要将当前节点的数据替换成后面一个节点的数据,然后将该节点后面一个节点删除即可。 #include typedef struct List{ int n; struct List *next; }ListNode,*List;原创 2014-02-28 11:40:17 · 779 阅读 · 0 评论 -
给定一个数组,该数组存贮R,G,B三种字符,将该数组按RGB顺序排序,不能使用辅助内存空间,且只能遍历数组一次。
#include void swap(char *a,int low, int high) { char temp; temp = a[low]; a[low]=a[high]; a[high]=temp; } char *sort(char *a,int low, int high) { int r=low-1,g=low-1,i; for(i=0;i<high;i++) {原创 2014-07-17 17:34:10 · 1342 阅读 · 0 评论 -
递归全排列
#include void swap(char *p,int a, int b) { char m; m = p[a]; p[a] = p[b]; p[b] = m; } int isSwap(char *p,int a, int b) { int i,result; for(i=a;i<b;i++) { if(p[i]==p[b]) { return 0; } } r原创 2014-07-20 22:28:50 · 728 阅读 · 0 评论 -
判断一个字符串是不是另一个字符串的字串
#include int isSubstr(char *a,char *b) { int i=0; int n=strlen(a); int m=strlen(b); for(i=0;a[i]!='\0';i++) { int k=i,j=0; while(a[k]==b[j]) {原创 2014-07-09 23:46:48 · 1336 阅读 · 0 评论 -
Deep learning: autoencoders and sparsity
深度学习中的稀疏模式自动编码。原创 2014-08-13 11:05:43 · 729 阅读 · 0 评论