排列 每次丢掉上次用过的,剩下的继续递归 组合 每次丢掉上次用过的,只向右遍历,为了去掉相同组合,剩下的继续递归
查找目标左边界,值相等时向左移动,即right-=1,最后返回left 查找目标右边界,值相等时向右移动,即left+=1,最后返回right
动态规划一般分为一维、二维、多维(使用状态压缩),对应形式为 dp(i)、dp(i)(j)、二进制dp(i)(j)。
动态规划做题步骤
明确 dp(i)应该表示什么(二维情况:dp(i)(j)); 根据 dp(i)和dp(i-1)的关系得出状态转移方程; 确定初始条件,如 dp(0)。
快指针去判断值,把想要的值保存到慢指针