IT入门 > 面试题 > python题库 > 编程题 >
  • 台阶问题/斐波那契

    2019/07/27 点击:17804

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 fib = lambda n: n if n 第二种记忆方法 def memo(func): cache = {} def wrap(*args): if args not in cache:

  • 变态台阶问题

    2019/07/27 点击:11743

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

  • 矩形覆盖

    2019/07/27 点击:4541

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

  • 杨氏矩阵查找

    2019/07/27 点击:5387

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

  • 去除列表中的重复元素

    2019/07/27 点击:6056

    用集合 list(set(l)) 用字典 l1 = ['b','c','d','b','c','a','a']l2 = {}.fromkeys(l1).keys()print l2 用字典并保持顺序 l1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))l2.sort(key=l1.index)print l2 列表推导式 l1 = ['b','c',

  • 链表成对调换

    2019/07/27 点击:6438

    1->2->3->4 转换成 2->1->4->3 . class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: # @param a ListNode # @return a ListNode def swapPairs(self, head): if head != None and head.next != None: next = head.nex

  • 创建字典的方法

    2019/07/27 点击:6316

    1 直接创建 dict = {'name':'earth', 'port':'80'} 2 工厂方法 items=[('name','earth'),('port','80')]dict2=dict(items)dict1=dict((['name','earth'],['port','80'])) fromkeys()方法 dict1={}.fromkeys(('x','y'),-1)dict={'x':-1,'y':-1}dict2

  • 合并两个有序列表

    2019/07/27 点击:4860

    知乎远程面试要求编程 > 尾递归 def _recursion_merge_sort2(l1, l2, tmp): if len(l1) == 0 or len(l2) == 0: tmp.extend(l1) tmp.extend(l2) return tmp else: if l1[0] > 循环算法 思路: 定义一个新的空列表 比较两个列表

  • 交叉链表求交点

    2019/07/27 点击:4482

    其实思想可以按照从尾开始比较两个链表,如果相交,则从尾开始必然一致,只要从尾开始比较,直至不一致的地方即为交叉点,如图所示 # 使用a,b两个list来模拟链表,可以看出交叉点

  • 二分查找

    2019/07/27 点击:7056

    #coding:utf-8def binary_search(list, item): low = 0 high = len(list) - 1 while low item: high = mid - 1 elif guess 参考: http://blog.csdn.net/u013205877/article/details/76411718