Skip to main content
5、字典问题

5、字典问题

1090. 受标签影响的最大值

我们有一个 n 项的集合。给出两个整数数组 valueslabels ,第 i 个元素的值和标签分别是 values[i]labels[i]。还会给出两个整数 numWanteduseLimit


Y-aong...About 2 min算法算法贪心算法hash
8、字符串编辑距离

8、字符串编辑距离

392. 判断子序列——入门题(公共子序列问题)

给定字符串 st ,判断 s 是否为 t 的子序列。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace""abcde"的一个子序列,而"aec"不是)


Y-aong...About 2 min算法算法字符串编辑距离动态规划
0、贪心算法概述

0、贪心算法概述

一、什么是贪心

贪心就是每一阶段选择最优解,从而达到全局最优。

贪心是我觉得最难也是最简单的算法,可能我们就发现不了我们使用的贪心,但是我们实际却使用到了贪心,也有可能我们觉得思路就该是这样的但是我们就是写不出来。

例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?

指定每次拿最大的,最终结果就是拿走最大数额的钱。

每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。

二、什么时候使用贪心


Y-aong...About 1 min算法算法贪心算法
1、常识类贪心问题

1、常识类贪心问题

455. 分发饼干——常识题,使用小饼干来满足小胃口的孩子

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。


Y-aong...About 4 min算法算法贪心算法
4、贪心双指针问题

4、贪心双指针问题

605. 种花问题——种花问题

假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。

给你一个整数数组 flowerbed 表示花坛,由若干 01 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false


Y-aong...About 6 min算法算法贪心算法双指针
3、递增子序列

3、递增子序列

300. 最长递增子序列——子序列可以是不连续

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。

子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。


Y-aong...About 5 min算法算法递增子序列动态规划
2、打家劫舍

2、打家劫舍

198. 打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。


Y-aong...About 7 min算法算法打家劫舍动态规划
4、股票交易

4、股票交易

121. 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。


Y-aong...About 10 min算法算法股票交易动态规划
1、背包问题

1、背包问题

一、01 背包

有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。这是标准的背包问题。但是力扣上没有标准的背包问题,有的只是一些变形问题。

但是只有基本的背包问题理解清楚,其他的变形问题才能够完全明白,因此我们先拿标准的背包问题进行分析。

重量 价值
物品0 1 15
物品1 3 20
物品2 4 30

Y-aong...About 13 min算法算法背包问题动态规划
5、回文子串

5、回文子串

一、定义

回文字符串

  • 是正着读和倒过来读一样的字符串。
  • 和奇数数量有关
  • 倒叙挺好用的
  • 双指针和动态规划是一般的解题方法

二、验证回文串

125 验证回文串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串


Y-aong...About 7 min算法回文子串动态规划双指针
2