数据结构与算法Python版MOOC笔记及练习【六】

什么是分治策略

分治策略是一种典型解决问题的策略,将问题分为若干更小规模的部分,通过解决每一个小规模部分问题,并将结果汇总得到原问题的解。

什么是优化问题

计算机科学中许多算法都是为了找到某些问题的最优解。

什么是贪心策略

在对问题求解时,总是做出在当前看来是最好的选择。

递归算法改进

关键在于消除重复计算,用一个表将计算过的中间结果保存起来,在计算之前查表看看是否已经计算过。
这个算法的中间结果就是部分找零的最优解,在递归调用过程中已经得到的最优解被记录下来。

中间结果记录可以很好解决找零兑换问题,实际上这种方法还不能称为动态规划,而是叫做记忆化/函数值缓存的技术提高了递归解法的性能。
在这里插入图片描述

课程练习(自己写的共14.00/19.00分,之后再填坑系列)

1单选(2分)​下列哪个算法使用到了分治策略?
A.博物馆大盗问题
B.单词最短编辑距离
C.二分查找
D.迷宫寻路

2单选(2分)‌函数值缓存最适合使用哪种Python中的数据类型?
A.栈
B.列表
C.字典
D.集合

3单选(2分)‌已知数列G(x)满足:​

‌G(1)=G(2)=G(3)=G(4)=1
‌G(x)=G(x-1)+G(x-2)+G(x-3)+G(x-4) (x≥5)

​‌根据递推式写出求数列值的递归算法,问原始算法与采用函数值缓存的算法时间复杂度分别为多少?
A.O(5 ^ n); O(1)
B.O(n ^ 4); O(n^2)
C.O(5 ^ n); O(n^2)
D.O(4 ^ n); O(n)

4单选(2分)‍博物馆大盗问题中,若共有8件宝物,背包总重为25单位,使用动态规划算法求解时需要建立多大的数组?
A.10x26
B.9x26
C.10x27
D.8x26

5单选(2分)‏以下哪个说法是错误的?

A.“单词最短编辑距离”问题不应该使用贪心法解决
B.相比于函数值缓存,动态规划的优势在于不需要额外的存储空间
C.“字符串匹配”问题中可以应用动态规划思想
D.贪心法适用于局部最优等同于总体最优的问题求解

6多选(3分)‌以下是使用递归算法对N皇后问题求解的不完整代码:‍

def solveNQueen(N):
    pool = # <A>
    def queen(cur=0):
        if cur == len(pool):
            return # <X>
        res = # <Y>
        for col in range(len(pool)):
            pool[cur], flag = col, True
            for row in range(cur):
                if pool[row] == col or abs(col - pool[row]) == cur - row:
                    flag = False
                    break
            if flag:
                res += queen(cur+1)
        return res
    
    return queen(0)

# test
print(solveNQueen(8))

阅读代码,选出正确的选项
A.A处可以填“[]*N”
*B.A处可以填“[None]N”
C.若X处填"1",Y处填"0",该函数可返回N皇后问题解的个数
D.该算法时间复杂度为O(N^2)

7多选(3分)‎以下哪些问题可用动态规划算法解决?
A.列表排序
B.单词最短编辑距离
C.后缀表达式求值
D.斐波那契数列求值

8多选(3分)‏以下哪些说法是错误的?
A.动态规划可以减少算法的空间复杂度
B.函数值缓存可以减少算法的时间复杂度
C.动态规划不能减少算法的时间复杂度
D.函数值缓存不能减少算法的时间复杂度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值