数学趣题

2017-11-13  本文已影响0人  情鬼下凡
  1. 格雷码
  1. 循环移动
  1. 找出小于n的所有素数
  1. 找出一个字符串中有重复的且长度最长的子字符串及其长度。

    1. 对与字符串按照子字符串长度从大到小递减的方式扫描
    2. 查找源字符串中是否有重复的子字符串,若有,就结束。没有就减小子字符串的长度并重复改步骤。
  2. 魔幻方阵

  1. 寻找最大的n个数
  1. 查找数组中的最大值和最小值
  1. 遍历一次单链表找到它的中间节点
    设置两个指针p和q,让p每次前进2个节点,q每次前进1个节点,当p走到终点时,q恰好在中间位置

  2. 判断单链表是否有环
    设置连个指针p和q,让p每次前进2个节点,q每次前进1个节点,这样如果存在环,p指针一定会与q指针相遇,若无环,则p指针必定会先成为null

  3. 判断两个链表是否相交
    若两个单链表相交,则他们相交节点之后的所有节点应该是两个链表共有的,所以最后一个节点必然相等,我们只要找到两个链表的尾节点,判断它们是否相等即可,这种思想的时间按复杂度为length(h1)+length(h2)

  4. 蜗牛爬杆问题

一根31cm长的细杆,2cm、7cm、12cm、17cm、25cm处各有一只蜗牛。开始时,蜗牛头朝做还是朝右是任意的,他们只会向前走或调头,但不会后退,当任意两只蜗牛碰头时,它们会同时调头走,但速度不变,每秒走0.5cm,计算蜗牛全部离开杆的最长时间和最短时间。

上一篇 下一篇

猜你喜欢

热点阅读