算法
lixiang_inf
移动广告
展开
-
求两个单向链表的交点
代码struct Node{ int data; struct Node * next;}; Node* FixIntersetion(Node* pHead1, Node* pHead2){ Node* p1 = pHead1; Node* p2 = pHead2; int i = 1, j = 1, k = 0, diff = 0; //转载 2015-05-08 15:31:26 · 488 阅读 · 0 评论 -
走台阶问题
楼梯有n个台阶,上楼可以一步上1阶,也可以一步上2阶,一共有多少种上楼的方法?#includeusing namespace std;int fstep(int n){ if (n == 1)return 1; if (n == 2)return 2; if (n >= 3)return fstep(n - 2) + fstep(n - 1); return 0;}int转载 2015-05-08 15:42:02 · 568 阅读 · 0 评论 -
已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数
现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。 算法:充分利用出现次数超过一半这个特点,使用两个变量candidate和vote,分别代表候选人和票数,遍历数组按如下方式投票和更换候选人:若当前数与候选人一样,则把候选人的票数加1若当前数与候选人不一样, 则把它的票数减1,如果减掉后票数小于0,则把候选人踢掉,用当前数作为转载 2015-05-08 16:48:50 · 863 阅读 · 0 评论 -
几种常见的算法
1、穷举法穷举法是最基本的算法设计策略,其思想是列举出问题所有的可能解,逐一进行判别,找出满足条件的解.穷举法的运用关键在于解决两个问题:在运用穷举法时,容易出现的问题是可能解过多,导致算法效率很低,这就需要对列举可能解的方法进行优化.以题1041--纯素数问题为例,从1000到9999都可以看作是可能解,可以通过对所有这些可能解逐一进行判别,找出其中的纯素数,但只转载 2015-05-08 14:56:53 · 811 阅读 · 0 评论 -
头条面试题
今天去头条进行了面试 面试官直接个出了一个算法题求解 没解出来 比较尴尬 特此记下来 学习一下面试官也是手写题目 我简要陈述下题目内容:给定字符串S和L,在字符串S中寻找L的每个字符按顺序出现在S中的次数例如 S=AABBAAA L=ABA建立下S的下标索引 S0=A S1=A S2=B...可能的结果是024025026034035036原创 2017-11-26 13:02:44 · 1245 阅读 · 0 评论