摘要: 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 阅读全文
posted @ 2021-06-25 16:05 金色旭光 阅读(226) 评论(0) 推荐(0)
摘要: 树是一种很有规律的数据结构,如果使用合适的访问方法,可以很便捷高效的解决问题。比如递归。树这种数据结构在算法中我还没有遇到,估计是面试官也不好驾驭这种数据结构。 阅读全文
posted @ 2021-06-25 15:43 金色旭光 阅读(149) 评论(0) 推荐(0)
摘要: 动态规划是寻找最优解的方法,在具体的题型中又可以分为`一维列表`, `二维列表`等。现在所总结的是二维列表的动态规划,一维列表的题目请看`动态规划系列`。在上面的题目中题目多半是二维列表,所以动态规划也是二维列表的形式。而题目是一维列表的多半是一维列表能解决。二维列表的套路是,首先建立一个二维的dp列表,然后往dp列表中填值,最后计算出dp中的最大值。dp[i][j] 往往依赖于 `dp[i-1][j]` ,`dp[i][j-1]`, `dp[i][j]`。 阅读全文
posted @ 2021-06-25 15:41 金色旭光 阅读(331) 评论(0) 推荐(0)
摘要: 图是一种比较复杂的数据结构,不能说比较复杂,而是最复杂的。虽然接触到图的算法只有两道题,但是真的让我打开眼界,打开了深度优先和广度优先的大门。 阅读全文
posted @ 2021-06-25 15:06 金色旭光 阅读(136) 评论(0) 推荐(0)
摘要: 链表是我喜欢的数据结构,因为链表没有太多复杂操作。通常是遍历链表一直到尾节点,然后一边遍历一边配合指针操作。在链表中有几个小技巧可以好好总结一下: 阅读全文
posted @ 2021-06-25 14:21 金色旭光 阅读(121) 评论(0) 推荐(0)
摘要: 关于栈这中数据结构,直接用这个结构特性的题目不多,配合其他数据结构的比较多。比如在DFS中就使用了循环和栈的配合,BFS中使用了队列和栈的配合。 遇到括号,匹配等关键字,考虑栈这种数据结构。 阅读全文
posted @ 2021-06-25 14:05 金色旭光 阅读(134) 评论(0) 推荐(0)
摘要: 字符串和列表是两种最常用的数据结构,所以相关的算法也很多,可谓是花样百出,防不胜防。反而是像栈,队列,树这些不常见的结构,套路更简单一些。 阅读全文
posted @ 2021-06-25 13:39 金色旭光 阅读(318) 评论(0) 推荐(0)
摘要: 对于二维列表的操作技巧有 `化二维为一维`,而遵循最基础操作的思想,总结二维列表的操作,那就是循环。`普通循环`:使用双层循环能够找到列表中任意一个元素。`子矩阵`:在二维列表中找出所有的子矩阵。在二维列表中确定一个左上角和一个右下角,就能确定一个子矩阵(包括一个点或多个点)。那么同时控制两个点就需要4层循环。 阅读全文
posted @ 2021-06-25 09:25 金色旭光 阅读(359) 评论(0) 推荐(0)