• 算法二、


    1 台阶问题/斐波纳挈

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    第二种记忆方法

    第三种方法

    2 变态台阶问题

    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

    3 矩形覆盖

    我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

    2*n个矩形的覆盖方法等于第2*(n-1)加上第2*(n-2)的方法。

    4 杨氏矩阵查找

    在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    5 去除列表中的重复元素

    用集合

    用字典

    用字典并保持顺序

    列表推导式

    面试官提到的,先排序然后删除.

    6 链表成对调换

    1->2->3->4转换成2->1->4->3.

    7 创建字典的方法

    1 直接创建

    2 工厂方法

    3 fromkeys()方法

    8 合并两个有序列表

    知乎远程面试要求编程

    尾递归

    循环算法

    9 交叉链表求交点

    去哪儿的面试,没做出来.

    10 二分查找

    11 快排

    12 找零问题

    13 广度遍历和深度遍历二叉树

    给定一个数组,构建二叉树,并且按层次打印这个二叉树

    17 前中后序遍历

    深度遍历改变顺序就OK了

    18 求最大树深

    19 求两棵树是否相同

    20 前序中序求后序

    推荐: http://blog.csdn.NET/hinyunsin/article/details/6315502

    21 单链表逆置

    Python
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class Node(object):
        def __init__(self, data=None, next=None):
            self.data = data
            self.next = next
     
    link = Node(1, Node(2, Node(3, Node(4, Node(5, Node(6, Node(7, Node(8, Node(9)))))))))
     
    def rev(link):
        pre = link
        cur = link.next
        pre.next = None
        while cur:
            tmp = cur.next
            cur.next = pre
            pre = cur
            cur = tmp
        return pre
     
    root = rev(link)
    while root:
        print root.data
        root = root.next
  • 相关阅读:
    java相关
    cmd批处理命令及powershell
    火狐浏览器调试模式
    windows 配置java环境变量
    Acwing-279-自然数拆分(背包)
    Acwing-278-数字组合(背包)
    Acwing-277-饼干(DP)
    Acwing-274-移动服务(DP)
    Acwing-275-传纸条(DP)
    Acwing-121-赶牛入圈(二分, 二维前缀和,离散化)
  • 原文地址:https://www.cnblogs.com/pyrene/p/6697098.html
Copyright © 2020-2023  润新知