复试上机指南之贪心、动态规划

贪心

贪心求解的是局部最优解,只有在无后效性的情况下,求解的才可能是全局最优解。

看了简单贪心和区间贪心,就上机考试来说,关于贪心的套路就是找到每一个部分的局部最优解,且无后效性,即当前的选择不会影响后面部分的求解。大多数题目都是选择好一个属性,进行排序,然后设置一个标志,循环的去操作这个已经排好序的属性,直到不满足题意为止。

动态规划

动态规划求解的是最优解问题,与分治法的思想类似,将待求解问题分解成若干子问题,不同在于分治法可能会对一个子问题求解多次,但是动态规划是每次把求解的子问题的答案保存下来,在需要的时候直接取即可。

最大子序列和

动态规划经典问题之一,在一个给定的序列中,找一个连续的子序列,使得子序列的和为最大。
首先设置一个dp[],令dp[i]表示以A[i]作为末尾的连续序列的最大和,于是最大连续子序列和便是数组dp的最大值;这个题有两种情况:1.只有一个元素即A[i]本身,dp[i]=A[i]; 2.有多个序列,从某个A[j]开始,直到A[i],也就是dp[i]=A[j]+…+A[i-1]+A[i],即dp[i] = dp[i-1]+A[i],最后求得max(A[i],dp[i-1]+A[i])即可。

#include<iostream>
using namespace std;
const int maxn = 1000;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

li_jeremy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值