自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 编辑距离 动态规划(dp数组)

来源:labuladong的算法小抄题目:现在有两个字符串s1和s2,请计算由s2转换成s1最少需要多少步?可以对字符串进行三种操作:插入一个字符,删除一个字符,替换一个字符。例: s1 ="intention" s2 = "execution"结果:5方法:解决两个字符串的动态规划问题,一般都是用两个指针i,j分别指向两个字符串的最后,然后一步一步的往前走,缩小问题规模。思想:base ...

2021-12-06 17:08:36 586

原创 最长公共子序列 LCS (动态规划)

来源:labuladong的算法小抄题目:最长公共子序列(Longest Common Subsequence),求两个字符串的LCS长度。例:str1: abcdestr2: aceb结果:3 (最长子序列为ace)第一步:明确dp数组的含义 dp[i][j]:对str1[0...i-1]和str2[0...j-1]的LCS长度。第二步:定义base case索引为0的行和列来表示空串,dp[0][...]和dp[...]...

2021-12-04 15:14:26 176

原创 最大子数组(分治法+动态规划)

来源:labuladong的算发小抄方法一:分治法#include <iostream>using namespace std;//计算S3 分为两部分//第一部分为包含mid位置的元素,依次向前遍历找最大的子数组为Sleft//第二部分为包含mid+1位置的元素,依次向后遍历,找到最大子数组//S3就是包含mid和mid+1位置的最大子数组,即为Sleft和Sright的和。int CrossingSubArray(int X[],int low,int mid,in

2021-12-02 17:54:09 1431

原创 二维递增子序列:信封嵌套问题

来源:labuladong的算法小抄 第二章2.2问题描述:给出一个信封,每个信封用高度和宽度的整数对形式(w,h)表示。当一个信封A的宽度和高度都大于另一个信封B的时候,则B就可以放到A里。如同‘俄罗斯套娃’一样。请计算做多能有多少个信封能组成一组‘俄罗斯套娃’信封(即最多能套几层)。思路分析: 先对宽度进行升序排列,如果遇到w相同的情况,则按照高度h进行降序排列。之后把所有的h作为一个数组,在这个数组计算出LIS(最长递增子序列)的长度就是答案。因为两个w相同的信封不能相互包含,w相同是将h

2021-12-02 14:54:21 679

原创 最长递增子序列 动态规划+二分搜索

题目来源:力扣参考资料:labuladong的算法小抄题目描述:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。注:子序列:不一定是连续的。子串:一定是连续的输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。解法一:动态规划

2021-11-30 11:51:27 251

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除