算法
allen11112
这个作者很懒,什么都没留下…
展开
-
程序员的算法趣题Q08:优秀的扫地机器人
题目 现在市面上有很多扫地机器人,能够为我们分担家务,但是我们很难理解,有时候扫地机器人会重复清扫同一块地方。 假设现在有一款扫地机器人,不会重复扫过的地方,如果它要走四步,在走了第一步后,移动三步有如下9种路径; 第一步可以走4种路径,总共情况有 9*4=36 种路径。 思路: 1.可以(0,0)来表示初始位置,每次可以有四个方向可以选择 上(1,0),下(-1,0),左(0,-1),右(0,1) 2.用一个集合保存所有已经走过的位置,过滤重复走的位置 实现 public class Floormo原创 2020-05-28 13:30:16 · 353 阅读 · 0 评论 -
程序员算法趣题之考兹曼猜想
题目 考兹曼猜想: 一个正整数,无论它为多少 1.如果它是偶数,就除以2 2.如果它是基数,就乘以3+1 一直重复运算,最后结果一定为1 例子:5 16 8 4 2 1 现在改进考兹曼猜想: 一个正整数,无论它为多少 1.首先将它乘以3加1 2.如果它是偶数,就除以2 3.如果它是基数,就乘以3+1 重复运算,最后结果等于自己本身 例子:4 13 40 20 10 5 16 8 4 思路 现在实现考兹曼猜想改进版,统计2到10000,有多少符合特征的数 遍历运算并比较,运算结果为1,或者与自己本身相原创 2020-05-26 11:21:45 · 167 阅读 · 0 评论 -
切分木棒
文章目录切分木棒题目思路 切分木棒 题目 假设要把长度为n 厘米的木棒切分为1 厘米长的小段,但是1 根木 棒只能由1 人切分,当木棒被切分为3 段后,可以同时由3 个人分别切 分木棒。(如图2) 求最多有m 个人时,最少要切分几次。譬如n = 8,m = 3 时如下 图所示,切分4 次就可以了。 *解题要点 如果人数足够,每次都对半切分所有木棒应该是最快的。 因为存在人数限制,所以诀窍在于要尽量不让人空闲下来。 思路 这样的问题用递归最容易描述,切分后的木棒还会像切分前的木棒继续被切分。 packa原创 2020-05-16 11:00:26 · 512 阅读 · 0 评论 -
单链表实现
文章目录链表1.链表的定义2.链表的分类2.1单链表2.1.1单链表的实现2.2 循环链表2.3 双联表链表的应用小结 链表 1.链表的定义 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。原创 2020-05-16 09:52:28 · 115 阅读 · 0 评论