当前位置: 首页 > news >正文

学做电商的网站河南网站定制

学做电商的网站,河南网站定制,主机托管是什么意思,中粮网站是哪个公司做的力扣原题链接,点击跳转。 给你一个整数数组nums。每次操作,可以删除任意一个值n,接着获得点数n,并同时删除所有的n-1和n1。你最多能获取多少点数? 这个问题的解法相当巧妙。我们可以把问题先转化一下。用类似计数排序…

力扣原题链接,点击跳转。

给你一个整数数组nums。每次操作,可以删除任意一个值n,接着获得点数n,并同时删除所有的n-1和n+1。你最多能获取多少点数?

这个问题的解法相当巧妙。我们可以把问题先转化一下。用类似计数排序的思路,定义一个数组arr,用arr[i]表示所有的点数i的和。比如nums数组:1、2、2、3、3、3,那么arr数组:0、1、4、9,因为1出现1次,和为1;2出现2次,和为2×2=4;3出现3次,和为3×3=9。

盯着这个arr数组,问题就转化为:在arr数组中选取一个子数组,不能同时选取相邻的元素,请找出一个子数组,让这个子数组所有元素的和最大。如果你看到这里,觉得这道题跟某一道经典问题很像,有这种感觉就对了。具体请看我的另一篇博客:「动态规划」打家劫舍,点击跳转。有了打家劫舍的铺垫,这个问题就非常简单了,思路可以说是一模一样。

用动态规划的思路来解决这个问题。首先确定状态表示,用f[i]表示选到下标为i的元素时,必须选择下标为i的元素,子数组的最大和;用g[i]表示选到下标为i的元素时,不能选择下标为i的元素,子数组的最大和。接着推导状态转移方程,显然f[i]=g[i-1]+arr[i],g[i]=max(f[i-1],g[i-1])。初始化f[0]=arr[0]=0,g[0]=0。为什么arr[0]=0呢?因为点数0不管选多少,和都是0。填表时应从左往右同时填表。arr有n个元素,最后返回max(f[n-1],g[n-1])。

class Solution
{
public:int deleteAndEarn(vector<int>& nums){const int N = 10001;// 用arr[i]表示所有点数i的和vector<int> arr(N);for (auto num : nums)arr[num] += num;// 创建dp表vector<int> f(N);auto g = f;// 填表for (int i = 1; i < N; i++){f[i] = g[i - 1] + arr[i];g[i] = max(f[i - 1], g[i - 1]);}return max(f[N - 1], g[N - 1]);}
};
http://www.ahscrl.com/news/142.html

相关文章:

  • 温州制作网站web免费网站
  • 网站建设需求说明书模板关键词排名优化易下拉排名
  • 数据库网站建设seo人才网
  • 江苏网站建设系统方案电商网站订烟
  • 厦门网站建设是什么意思引擎搜索器
  • 每天干每天做网站百度模拟搜索点击软件
  • 做视频网站为什么费钱百度小说排行榜前十
  • 高端网站设计优化建站百度网盘资源共享
  • 公众号里的电影网站怎么做的seo流量工具
  • 公司注册网站跟派出所有啥关系南京网络推广外包
  • 怎么做网站代购bing搜索引擎国内版
  • 中国互联网站建设中心建站sem推广竞价托管公司
  • 哪些网站可以做易拉宝关键词优化推广公司
  • 杭州市网站制作百度大数据官网
  • 注册了域名怎么做网站百度联盟项目看广告挣钱
  • 网站商城建设的维度注册网站
  • php 政府网站源码收录网站排名
  • 北京做兼职网站有哪些建站工具有哪些
  • 长沙做网站需要多少钱济南优化seo公司
  • 佛山做推广网站的佛山网站定制
  • 南京建设局网站首页网站seo外包公司
  • 网站目录管理模板十大新媒体平台有哪些
  • 宝安新闻seo门户网站
  • 做网站营销怎么去推广宁波seo公司推荐
  • wordpress 502 bad gateway企业网站优化的三层含义
  • 网站cms在线识别移动建站模板
  • 宇宙企画网站获客渠道有哪些
  • 建设公司怎么做网站运营网络营销常见术语
  • 网络营销方式对比分析论文网站seo思路
  • 珠海网站建设费用seo优化关键词是什么意思