Java教程

常见算法

本文主要是介绍常见算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

排列组合问题

排列 每次丢掉上次用过的,剩下的继续递归
组合 每次丢掉上次用过的,只向右遍历,为了去掉相同组合,剩下的继续递归

二分法

查找目标左边界,值相等时向左移动,即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)。

快慢指针问题

快指针去判断值,把想要的值保存到慢指针
这篇关于常见算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!