算法
一身都是月儿
发博客论文,走算法人生
展开
-
单一物品参数的多背包问题
你要买书架把所有的书都放进去。你已经知道你有多少本书,需要数一数 所需的书架数量。第一行包含三个整数,按顺序, 描述小书的数量,中书的数量 以及大书的数量。每个书架具有相同的给定宽度。给定每种书籍的数量,计算所需的最小货架数。这些书有三种尺寸:小本子有宽度。思路:穷举+递归+记忆化搜索。原创 2023-09-26 22:53:19 · 86 阅读 · 0 评论 -
Java沿对角线遍历矩阵的几种方式
同理,因为总是从最右上方结束,观察到当 i m - 1时,end > 0, 此时end的值可以由[起始索引]-[该次遍历的元素个数]得出,即end = m - 1 - (m + n - 2 - i) = i - n + 1,所以end = max(0, i -n+1)因为总是从最左下方开始遍历,所以当i m - 1时,i = m - 1,所以start = min(i, m-1)其中m是行数,n是列数。原创 2023-09-13 17:06:01 · 229 阅读 · 0 评论 -
Python动态规划实现查找第n个斐波那契字符串的第k个字符
观察前9个斐波那契字符串,发现第一个字符串,n为奇数时,总是’F’,n为偶数时,总是’B’。第二个字符串,n为奇数时,总是’B’,n为偶数时,总是’F’。也就是说,假设我们能构建一个长度为k的字符串,这个字符串上第k个字符,也一定等于长度大于k的字符串的第k个字符。利用这种规律我们不需要去真正构建出第n个字符串,而只需要构建长度为k的字符串,极大节省了内存开销。实际上,当k = 10000000时,n=36,当k=1000000000,n=45。对于第n个字符串的第k个字符,首先当然可以直接通过索引访问。原创 2023-09-21 16:32:46 · 97 阅读 · 0 评论