注意点:1、其实就是讲所有走每一步的时候求大致值就好,然后这个值又会对下面进行影响,就像自己思考问题一样 2、然后就是需要注意一下边界问题,因为我们这边求最大值,所以需要对边界进行初始化 #include <iostream> #include <cstring> #include <string> ...
动态规划 零钱兑换 II 参考书目:《程序员代码面试指南:IT名企算法与数据结构题目最优解》 给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 输入: amount = 5, coins = [1, 2, 5] 输出: 4 解释: ...
分类:
其他好文 时间:
2020-07-20 23:02:16
阅读次数:
148
题目地址:https://leetcode-cn.com/problems/regular-expression-matching/ 解题思路:首先很明显字符串的匹配适合动态规划,所以建立dp[i][j]表示s的前i个字符与p中的前j个字符是否能够匹配。然后就是判断各种情况。笔者在写的时候情况考虑不 ...
分类:
其他好文 时间:
2020-07-20 22:55:47
阅读次数:
98
https://leetcode-cn.com/problems/longest-increasing-subsequence/ 1、题目: 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2 ...
分类:
其他好文 时间:
2020-07-19 23:31:12
阅读次数:
70
10-I. 斐波拉契数列 题意:面试题10- I. 斐波那契数列 思路:最基础的动态规划题。数据量比较大的时候不能使用递归,会报StackOverFlow Exception,最优的方式是迭代计算。 class Solution { public int fib(int n) { if (n <= ...
分类:
其他好文 时间:
2020-07-19 23:20:11
阅读次数:
72
https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/ 1、题目描述: 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 2、示 ...
分类:
编程语言 时间:
2020-07-19 18:09:51
阅读次数:
388
问题描述 给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。 '?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。 说明: s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a ...
分类:
其他好文 时间:
2020-07-19 16:24:05
阅读次数:
60
方法一: 动态规划 class Solution { public boolean isInterleave(String s1, String s2, String s3) { int n1 = s1.length(), n2 = s2.length(), n3 = s3.length(); if ...
分类:
其他好文 时间:
2020-07-18 22:15:59
阅读次数:
61
题目链接 97. 交错字符串 题目分析 字符串题目,一般不考虑暴力解法,因为极有可能会出现超时的情况(主要是重复搜索次数太多 这个题很明显的就是需要我们使用动态规划去做,一开始我自己也懵逼了,三串的DP?难不成要一个三维状态数组吗,但是仔细分析了一下好像其实并不是的。 因为我们s1的长度加s2的长度 ...
分类:
其他好文 时间:
2020-07-18 11:21:24
阅读次数:
63
题目 描述 蚂蚁山上有T(1<=T<=1,000)种蚂蚁,标记为1..T,每种蚂蚁有N_i只蚂蚁(1<=N_i<=100),现有A(A<=5000)只蚂蚁,从中选出S,S+1,…,B(1<=S<=B<=A)只蚂蚁一共有多少种选法? 如有5只蚂蚁分别为{1,1,2,2,3},一共有3种蚂蚁,每一种蚂蚁 ...
分类:
其他好文 时间:
2020-07-17 22:24:26
阅读次数:
121