随笔分类 -  [802]数据结构与算法

理论知识
摘要:扫描法。一次扫描数组即可得出答案,复杂度O(n)。这种方法用文字描述不容易说清楚,下面用每一步运算的图示来表达。伪代码如下: maxsofar=end=0; for i=[0,n) end=max(end+x[i],0) maxsofar=max(maxsofar,end) 即使后面没有这样的值了, 阅读全文
posted @ 2017-08-26 20:57 DarrenChan陈驰 阅读(399) 评论(0) 推荐(0)
摘要:问: 25匹马,5个跑道,每个跑道最多能有1匹马进行比赛,最少比多少次能比出前3名? 答: 求前3名要7次; 将马分成A、B、C、D、E五组。 第1-5次比赛:各组分别进行比赛,决出各组名次,取每组前三名 A1、A2、A3, B1、B2、B3, C1、C2、C3, D1、D2、D3, E1、E2、E 阅读全文
posted @ 2017-08-26 20:13 DarrenChan陈驰 阅读(1935) 评论(1) 推荐(0)
摘要:辗转相除法用得比较多,今天Mark一下。具体做法就是:如果q和r分别是m除以n的商及余数,即m=nq+r,那么m和n的最大公约数等于n和r的最大公约数。 代码如下: 阅读全文
posted @ 2017-05-18 20:56 DarrenChan陈驰 阅读(458) 评论(0) 推荐(0)
摘要:需求: 有向图中任意给定两个节点,输出这两个节点间所有可能经过的路径,并且进行打印。 代码如下:(这里以42个节点为例) 定义节点类: 定义图类: 搜索并打印路径算法类: 测试类: 结果如下: 第0个节点: 0-0:0 0-1:0 0-2:0 0-3:0 0-4:0 0-5:0 0-6:0 0-7: 阅读全文
posted @ 2017-03-14 00:39 DarrenChan陈驰 阅读(1386) 评论(0) 推荐(0)
摘要:本题是滴滴出行2016研发工程师笔试题 问题 2015盏灯,一开始全部熄灭,序号分别是1-2015,先把1的倍数序号的灯的开关全部按一次,然后把2的倍数的灯的开关全部按一次,然后把3的倍数的灯的开关全部按一次,以此类推,最后把2015的倍数灯的开关按一次。问最后亮着的灯有多少盏? 解题思路 简单思考 阅读全文
posted @ 2016-12-14 10:34 DarrenChan陈驰 阅读(456) 评论(0) 推荐(0)
摘要:算法的时间复杂度和空间复杂度合称为算法的复杂度。 1.时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执 阅读全文
posted @ 2016-08-17 01:57 DarrenChan陈驰 阅读(624) 评论(0) 推荐(0)
摘要:问题描述: 实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。 样例 "10" =>10 "-1" => -1 "12312312 阅读全文
posted @ 2016-08-03 00:24 DarrenChan陈驰 阅读(2418) 评论(0) 推荐(0)
摘要:问题描述: 比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母。 样例 给出 A = "ABCD" B = "ACD",返回 true 给出 A = "ABCD" B = "AABC", 返回 false 注意事项 在 A 中出现的 B 字符串里的字符不需要连续 阅读全文
posted @ 2016-08-02 22:28 DarrenChan陈驰 阅读(3143) 评论(0) 推荐(0)
摘要:问题分析: 我们通过遍历两个链表拿到每个位的值,两个值加上前一位进位值(0或者1)模10就是该位的值,除以10就是向高位的进位值(0或者1)。 由于两个链表可以不一样长,所以要及时判断,一旦为null,该位的值就要变成0。 有一种情况比较特殊,比如:1->1->1->null, 9->8->8->n 阅读全文
posted @ 2016-08-01 06:53 DarrenChan陈驰 阅读(2386) 评论(1) 推荐(1)
摘要:问题分析: 声明当前指针和上一个指针即可。 问题求解: 阅读全文
posted @ 2016-08-01 04:38 DarrenChan陈驰 阅读(800) 评论(0) 推荐(0)
摘要:首先说说斐波那契数列:从文字上说,斐波那契数列由0和1开始,之后的斐波那契系数就由之前的两数相加,数列形式如下:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584,………………在数学上,是以递归的方 阅读全文
posted @ 2016-07-30 20:42 DarrenChan陈驰 阅读(1407) 评论(2) 推荐(0)
摘要:问题分析: 用两个指针分别遍历即可。 问题求解: 阅读全文
posted @ 2016-07-30 16:48 DarrenChan陈驰 阅读(278) 评论(0) 推荐(0)
摘要:问题分析: 既然返回值没有重复,我们不妨将结果放进set中,然后对两个set进行比较。 问题求解: 阅读全文
posted @ 2016-07-30 16:43 DarrenChan陈驰 阅读(474) 评论(0) 推荐(0)
摘要:问题描述: Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. Example: Given a = 1 and b = 2, return 3. 问题分析: 阅读全文
posted @ 2016-07-07 01:50 DarrenChan陈驰 阅读(722) 评论(0) 推荐(1)
摘要:1.Leetcode鼎鼎大名的Leetcode,据不完全统计在上面被刷过的题可以围绕地球三圈。(没说赤道哈,就是这么严谨。)总之,很多国内外的码农在上面刷题。难度从easy到hard都有,而且覆盖面极广。现在还增加了数据库和shell,相匹配的论坛也可以多看看。很锻炼和国外码农沟通的能力,对于以后去 阅读全文
posted @ 2016-07-06 23:11 DarrenChan陈驰 阅读(4484) 评论(5) 推荐(5)