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

自己电脑做网站互联网公司排名2021

自己电脑做网站,互联网公司排名2021,在线简历制作网站免费,三桥做网站力扣原题链接,点击跳转。 给你一个整数数组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.jinmujx.cn/news/117884.html

相关文章:

  • 企业二级网站怎么做河南seo优化
  • dede如何设置网站端口查询关键词
  • 上海做网站找哪家好百度网站app
  • 企业网站定制开发一条龙全包网站源码平台
  • seo整站优化服务教育培训机构前十名
  • 广州网站建设集团网络推广引流是做什么工作
  • 网站建设期末论文百度搜索推广收费标准
  • 创业给别人做网站怎么样广告公司广告牌制作
  • 网站开发与管理实训项目seo优化方式包括
  • 2008 iis搭建网站情感营销的十大案例
  • 唐尧文化 网站建设工作总结宁德seo推广
  • 用vue开发的网站网站seo价格
  • 请问大连谁家做网站app拉新任务平台
  • 合肥企业网站seo软文推广是什么意思
  • 淘宝找做网站电商运营公司简介
  • java企业门库网站开发网站seo优化怎么做
  • 帝国怎么做中英文网站优速网站建设优化seo
  • 做外贸网站费用做网站设计的公司
  • 赣县企业网站建设检测网站是否安全
  • 万网是做网站的吗优化营商环境条例
  • 有哪些网站可以做兼职媒体发稿费用
  • 网站及app建设发布软文网站
  • wordpress不显示头像深圳关键词推广整站优化
  • 龙岗同乐社区做网站近三天的国内外大事
  • 建立网站的步骤seo排名点击器原理
  • 江西网站备案seo网站内部优化方案
  • 合肥网站建设怎么做厦门网站外包
  • 网页设计html代码大全颜色seo岗位职责
  • 青岛网站公司网站关键词优化推广哪家快
  • 网站和数据库淘宝培训