![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
Hey1213
这个作者很懒,什么都没留下…
展开
-
140. 单词拆分 II
题目:上一题139的加强版给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。我的实现方法是依旧是记忆化回溯,相比上一题加上了句子分割后的拼接。#!/usr/bin/env python3.6# _*_coding:utf-8 _*_# @Time : 2019/...原创 2019-10-29 22:14:21 · 101 阅读 · 0 评论 -
139. 单词拆分
题目:给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。这题我一开始用暴力的回溯解法,因为忘记记录已搜索过的拆分点,导致在极端数据下会超时,时间复杂度会到O(n^n),如下:因此,改用题解中的第一种解法记忆化回溯,也就是用一个列表记录...原创 2019-10-29 21:08:55 · 110 阅读 · 0 评论 -
131. 分割回文串
题目:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。一开始的思路跟题解第二种方法很像:记录出每个区间是否回文+DFS但是在实现的时候有一个细节没想好: for i in range(n): for j in range(0, i+1): if i == j: p[j][i] = True continu...原创 2019-10-25 13:29:41 · 115 阅读 · 0 评论 -
123. 买卖股票的最佳时机 III
本题相当于T121和T122的进阶版相比于前两次的只有一次交易和不限交易次数,本题仅限小于等于两次交易虽然有前两题做铺垫,但我还是没有思路自己想的是一些暴力方法,复杂度基本都是O(n^2)左右看了一下题解,有点像动态规划,基本上都是以下思路:设定四个变量:fst_buy第一次买入可以获得的最大利润fst_sell第一次卖出可以获得的最大利润sec_buy第二次买入可以获得的最大利润...原创 2019-04-05 15:18:06 · 319 阅读 · 0 评论 -
873. 最长的斐波那契子序列的长度
本题主要是求一串数组成的序列中,最长的斐波那契子序列的长度思路:个人理解,斐波那契数列的精髓在于你知道某两个数,就可以一直往前/往后推出整个数列的所有数,所以我们可以设任意两个数为该斐波那契子序列的最后两个数(作为一个状态),然后写出动态转移方程:ans[i][j] = ans[j][k] + 1(若ans[j][k] = 0,则改成+3)可能是我多年封印的动态规划突然开窍了…O(∩_∩)O...原创 2019-04-09 13:31:16 · 376 阅读 · 0 评论 -
871. 最低加油次数
我自己最初的想法是动态规划 f[i][j] 表示到第i个点时,加j次油最多能走多少英里f[i][j] = max(f[k][j-1] + k点的加油量 - k点到i点的油耗量)最后选择f[target点][i]>0中,最小的i值from typing import Listclass Solution: def minRefuelStops(self, target: int, s...原创 2019-07-17 12:50:23 · 485 阅读 · 0 评论