分治法
- 拆分思路:
- 同样结构
分治法 - 递归技术
分治法 - 二分查找法
回溯法
贪心法
- 0-1背包:性价比优先
- 满足条件:局部最优,但最终结果不一定是最优
动态规划法
- 方法识别:基本都要用到查表的方式
例题
- 最先适宜策略:
1)、先使用第一个集装箱,依次填货物进去,4—》2—》7
2)、序号:3,体积:7 > 10-(4+2)=4,所以需要使用第二个集装箱
3)、接着判断下一个序号的货物的体积,从第一个集装箱开始匹配,直到能装下
4)、以此类推
注意:需要记录每次集装箱的剩余容量 - 最优适宜策略:
1)、在装完上一个货物之后,每次装货物之前需要判断每个集装箱的容量大小,从中选出最小容量的集装箱,从而将货物装入
注意:是一种贪心策略,不见得是最好的最终结果
- 时间复杂度:
- 空间复杂度:有多少个未知量就多少空间
- 总是n,分半——> n/2——> T(n/2)——》有两个:2T(n/2)+0(n)
- 合并算法过程:
1)、将left第一个元素,与right第一个元素作对比,小的放下去
2)、如果lefi(1)<right(1),则将left(1)放下去,接着比较left(2) - right(1) - 因为是右边部分,r 是最大的,所以是 k<r;将right[k]填入
- 问题3
因为每比较一次得到一个结果,一共有n1+n2个数,所以需要比较次数为 n1+n2
面向对象程序设计前言
- 解题策略:
- 首先把一部分的知识给掌握好——》1~3空简单
JAVA - 类的定义
- 借口内的方法:
- 从实现借口的类里面,看实现的方法
例题2
试题2
- 通过extends,所以是个class
- 画圆的代码,往往在另一个类里面已经完成了,仅仅调用方法即可
- 类图中发现V1Drawing与DP1有依赖关系,所以是调用了DP1
- Rectangle extends Shape :即为继承关系,子类继承的父类的特性,发现子类有而父类没有这个方法