2022年3月4日

LRU系列(146. LRU 缓存)——链表

摘要: """请你设计并实现一个满足LRU (最近最少使用) 缓存 约束的数据结构。实现 LRUCache 类:LRUCache(int capacity) 以 正整数 作为容量capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返 阅读全文

posted @ 2022-03-04 16:38 random_boy 阅读(77) 评论(0) 推荐(0) 编辑

2022年2月11日

旋转k个数组

摘要: """旋转k个元素的解法:首先通过k和数组的长度进行比较,k > 数组长度,则等于先旋转了一圈,数组没有变化,所以需要k进行求余 k=k%len(nums)当数组小于等于1 或者 k==0[刚好全部旋转了k/len(nums)整圈],所以数组的形状没有发生变化先对整个数组旋转一次然后对前k个旋转一次 阅读全文

posted @ 2022-02-11 14:56 random_boy 阅读(47) 评论(0) 推荐(0) 编辑

2021年12月31日

123. 买卖股票的最佳时机 III——动态规划-股票收益问题

摘要: """123. 买卖股票的最佳时机 III给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入:prices = [3,3,5,0,0 阅读全文

posted @ 2021-12-31 10:31 random_boy 阅读(39) 评论(0) 推荐(0) 编辑

买卖股票的最佳时机 IV ——动态规划-股票收益问题

摘要: """188. 买卖股票的最佳时机 IV给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入 阅读全文

posted @ 2021-12-31 10:30 random_boy 阅读(60) 评论(0) 推荐(0) 编辑

剑指 Offer 63. 股票的最大利润 ——动态规划-股票收益问题

摘要: """剑指 Offer 63. 股票的最大利润假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 阅读全文

posted @ 2021-12-31 10:29 random_boy 阅读(43) 评论(0) 推荐(0) 编辑

309. 最佳买卖股票时机含冷冻期 ——动态规划-股票收益问题

摘要: """309. 最佳买卖股票时机含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股 阅读全文

posted @ 2021-12-31 10:29 random_boy 阅读(28) 评论(0) 推荐(0) 编辑

2021年12月16日

粉刷墙纸的问题

摘要: """输入: [[17,2,17],[16,16,5],[14,3,19]]输出: 10解释: 将 0 号房子粉刷成蓝色,1 号房子粉刷成绿色,2 号房子粉刷成蓝色。 最少花费: 2 + 5 + 3 = 10。解题思路:本题采用动态规划的方式,类似求两个字符串求最大公共子序列。其中,定义dp数组,表 阅读全文

posted @ 2021-12-16 09:48 random_boy 阅读(22) 评论(0) 推荐(0) 编辑

键盘系列

摘要: """N=7output=9N=3output=3"""def get_a(n_num): def dp(n, a_num, a_copy): if n <= 0 : return a_num return max( dp(n-1, a_num + 1, a_copy), dp(n-2, a_num 阅读全文

posted @ 2021-12-16 09:48 random_boy 阅读(29) 评论(0) 推荐(0) 编辑

打家劫舍问题

摘要: """打家劫舍问题是一种典型的动态规划问题,按照房间的不同分布,其解法略有轻微的修改,下面分布以三个例子进行介绍1)房子在一字排开,首尾不相连2)房子成环形,首尾相连3)房子成树状结构""""""1)房子在一字排开,首尾不相连示例:输入:[1,2,3,1] output = 4输入:[2,7,9,3 阅读全文

posted @ 2021-12-16 09:47 random_boy 阅读(75) 评论(0) 推荐(0) 编辑

博弈问题

摘要: """博弈问题,也称为俩海盗分宝⽯,俩⼈拿硬币的问题,其解法也是动态规划dp数组的含义:dp[i][j].fir 表⽰,对于 piles[i...j] 这部分⽯头堆,先⼿能获得的最⾼分数。dp[i][j].sec 表⽰,对于 piles[i...j] 这部分⽯头堆,后⼿能获得的最⾼分数。举例理解⼀下 阅读全文

posted @ 2021-12-16 09:47 random_boy 阅读(61) 评论(0) 推荐(0) 编辑

导航