数据结构与算法
文章平均质量分 65
Elsweyr
这个作者很懒,什么都没留下…
展开
-
从1到n整数中1出现的次数--简短解法
剑指offer中给出了解题的思路,但程序略嫌繁琐,它先将整数转化成字符串之后进行操作,本文给出了一个相对简洁程序。 具体思路如下: (123456)的1个数 = 23456+1 + 5*pow(10,5-1) + (23456)的1个数 (23456)的1个数 = 3456+1 + 4*pow(10,4-1) + (3456)的1个数 。。。 代码如下:原创 2013-10-02 16:45:36 · 369 阅读 · 0 评论 -
完全二叉树插入新结点
在一个完全二叉树中插入新的节点,注意这里的完全二叉树并非二叉搜索树,因此我们只需要定位最后一个结点就可以了,不需要满足二叉搜索树的条件。 一个最简单的想法就是BFS,如果不是満二叉树,找到第一个有一个子树为空的节点即可。否则,则需要找到最下一层的最左结点。 另外一个想法是利用完全二叉树的性质,首先判断左子树的最右结点与右子树的最右结点高度,如果相等,只需要插入到左子树即可,否则插入右子树。原创 2013-10-03 20:45:08 · 3054 阅读 · 2 评论 -
KMP算法
#include #include using namespace std; int kmp(string org,string pat){ vector next(pat.size(),0); next[0]=-1; for(int i=1;i int n=next[i-1]; while(n!=-1&&pat[n]!=pat原创 2013-09-22 15:53:00 · 343 阅读 · 0 评论 -
快排与堆排复习
快排与堆排 很长时间不写程序了,手都生了 #include #include using namespace std; void quicksort(int *a,int s,int e){ if(s>=e)return; int m = s+(e-s)/2; int i=s; int j=e; int pivot = a[m]; while(i<=j){ if(a[i]>原创 2013-10-21 21:28:53 · 365 阅读 · 0 评论 -
中文日期串转化为数字日期串,python 代码
中文日期串转化为数字日期串,python 代码 def str2date(s): s = s.replace(u'于',''); year = s.split('年')[0] month = s.split('年')[1].split('月')[0] day = s.split('年')[1].split('月')[1].split('日')[原创 2015-01-14 15:03:52 · 1345 阅读 · 0 评论