算法
永远的烟火
我就是我,为绚丽绽放而厚积薄发的人间烟火
展开
-
三数之和
题目:给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组,要求a 算法:两数之和假定集合S已经排好序的话,则两数之和问题可以在O(n)的时间内解决。使用2个索引值first和last,分别指向第一个元素和最后一个元素,设指向的第一个元素为A,则我们的任务就是找到对应于A的元素B,B=K-A 。果last指原创 2016-12-02 16:58:45 · 481 阅读 · 0 评论 -
0/1背包问题
动态规划法:动态规划法采用分布决策,每一步的决策依赖于子问题的解,所以该方法求解是自底向上的 。两要素:最优子结构特性、子问题重叠最优子结构特性:较小子问题的最优解与较大子问题的最优解之间存在数值关系 。子问题重叠:自底向上计算,保存子问题的解,从而避免重复计算这些子问题 。0/1背包问题描述:已知载重为M的背包和n件物品,物品编号为0至n-1,第i件物品的原创 2016-12-05 18:35:54 · 538 阅读 · 0 评论 -
最大子串和、积
1、最大子串和endMax[i]表示以第i项为结尾的子串最大和 状态转移方程:dp[i] = max(dp[i-1]+arr[i],arr[i],dp[i-1])代码实现: /** * 子串最大和 * * @param arr * @return */ static int getMaxSubStringSum...原创 2017-10-27 16:55:03 · 302 阅读 · 0 评论 -
最长公共子序列、子串
最长公共子序列原创 2017-10-28 14:01:16 · 318 阅读 · 0 评论 -
全排列
全排列原创 2017-12-02 22:24:20 · 142 阅读 · 0 评论