![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
huangjiajubeyond
这个作者很懒,什么都没留下…
展开
-
根据上排给出十个数,在其下排填出对应的十个数
给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数。 举个例子, 上排数值: 0,1,2,3,4,5,6,7,8,9 下排数值: 6,2,1,0,0,0,1,0,0,0 0在下排出现了6次,1在下排出现了2次, 2在下排出现了1次,3在下排出现了0次。 注意题目的意思,输入的不一定只是十个数0.1.2.3....原创 2015-06-25 14:23:03 · 371 阅读 · 0 评论 -
写函数实现打印出1到最大的n位数,形参为n位数
1.循环必然溢出。 2.考虑用字符串实现,模拟加法。 3. void PrintMaxOfNDigite(int n) { char *number=new char[n+1]; number[n]="\0" ; memset(number ,'0',n); while( !原创 2015-05-27 00:31:07 · 291 阅读 · 0 评论 -
数值的整数次方(不考虑大数问题)
double compute(double base,int exponent) //name 边界情况考虑: 1.考虑base==0的情况。exponent=0,为正,为负。 2.base为负的时候,不影响,取倒数即可。 3.判断一个浮点数于0相等与否。怎么判断 double compute(double base ,int exponent) {原创 2015-05-27 00:05:48 · 241 阅读 · 0 评论 -
递归实现全排列
void print1ToMaxOfNDigits (int n) //打印1-n位最大的值。 { if(n==0) return ; char *number =new char [n+1]; number[n]='0'; for(int i=0;i { number[原创 2015-05-27 01:46:30 · 208 阅读 · 0 评论 -
0(1)时间删除带头节点单链表指定节点。
给定头结点Phead,节点指针Pnode,O(1)常数时间删除该节点。 通常需要遍历到Pnode的前一个节点。然后删除它。但这样的复杂度是O(n) 1.把Pnode的下一个节点的内容覆盖Pnode节点的内容,然后删除下一个节点。O(1) 2.有可能这种情况:Pnode指向的是最后一个节点,怎么办?这种情况只能从头到尾查找。O(n) 但是平均下来是O(1)的 略坑。 3.Phea原创 2015-05-27 01:56:59 · 358 阅读 · 0 评论 -
BackTravers Framework
int a[10];bool flag=false; int j=0;a[j]=1; while(true) { for(int i=0;i { if(a[i]==a[j]) {flag==ture;break;} } if(j==9&&flag==false){ ...转载 2015-05-27 02:23:33 · 225 阅读 · 0 评论 -
判断一个链表有没有环,找出链表里面环的第一个入口点
1.hash。把每个节点的地址放到键值对里。hash地址即可。O(n) 2.暴力 3.快慢指针,这里说一下为什么慢指针进入环里面后还没走完一圈就会相遇,其实很好理解,快指针肯定会追上他,如果慢指针走上一圈了。那么快指针必然已经追上他了。 慢的走S,快的走了2S S=a+x, 2S=S+nr 快的比慢的多跑n圈。 S=nr nr=(n-1)r +r=S r原创 2015-05-29 01:43:37 · 714 阅读 · 0 评论 -
逆序数的个数利用归并排序递归解决
*注意命名规范,写程序,边界条件,、 递归怎么写,假如为空的时候(或者只有一个的时候);然后做完左边,然后做完右边,然后处理左右边的结果。 1.逆序对,int a[] int findTheReverse(int a[],int low ,int high) { int copy[]=new int [strlen(a)]; return findThe原创 2015-05-30 23:52:57 · 258 阅读 · 0 评论 -
剑指offer
1.丑数:只有2,3,5因子,那么意思就是说反复去除2,3,5,如果结果能化为1,那么就是丑数,这是法一,法二:int * p=new int 【参数】;用三个指针指向数组头,三个指针代表2,3,5,的,指针找第一个乘以2,后大于当前最后一个丑数的位置。找第一个乘以3后大于最后一个丑数的位置。最后这三个位置的乘以2,3,5.最小的就是下一个丑数。明白了吗?应该可以明白。 2.翻译 2016-09-27 10:46:28 · 314 阅读 · 0 评论