简介
前几天在朋友圈中看到一个富士康面试题,题目是9个球放入4个袋子,如何保证每个袋子都有球且每个袋子中的球是单数。正好这几天又巩固下基础算法,想到个题不是可以用回溯和动态规划去解决吗?其实算法一个非常重要的东西就是建模,如果将现实中的东西抽象成模型,这个问题我们可以将其模型抽象成一个二维数据,一维代表背包的个数,二维代表一个包的所放的球数,对于不同算法,这个模型也有着不同含义,比如对于动态规划,同样使用二维数组去建模,动态规划二维数组代码的确实现在包中一共放了多少个球,另外数组加链表也是一种常用的建模工具,类似HashMap就使用了数组加链表来存储hash冲突的数据,在计算图相邻顶点时我们也会使用这种数据结构,数组下标代表的是当前点,数组中又加了一个链表来存储这个顶点相邻的点。