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

新开传奇网站发布站网络推广的平台

新开传奇网站发布站,网络推广的平台,湖南竞网科技有限公司,网站制作的论文题目列表 2828. 判别首字母缩略词 2829. k-avoiding 数组的最小总和 2830. 销售利润最大化 2831. 找出最长等值子数组 一、判断首字母缩略词 纯模拟&#xff0c;代码如下 class Solution { public:bool isAcronym(vector<string>& words, string s) {string tmp…

题目列表

2828. 判别首字母缩略词

2829. k-avoiding 数组的最小总和

2830. 销售利润最大化

2831. 找出最长等值子数组

一、判断首字母缩略词

 纯模拟,代码如下

class Solution {
public:bool isAcronym(vector<string>& words, string s) {string tmp;for(auto & x:words)tmp+=x[0];return tmp==s;}
};

二、k-avoiding数组的最小和

 

根据题目所给的数据范围,我们甚至可以将和为k的数据对全部求出来,然后一个个筛选,但是没必要,我们只要从小到大枚举元素,将枚举过的元素记录起来,当遇到能匹配的元素时跳过就行,直到选满n个元素(有点贪心的意思在里面)

class Solution {
public:int minimumSum(int n, int k) {set<int> s;int sum=0;for(int i=1;n;i++){if(s.find(k-i)==s.end()){s.insert(i);sum+=i;n--;}}return sum;}
};

或者直接推导出数学公式,代码如下(利用等差数列求和公式)

class Solution {
public:int minimumSum(int n, int k) {int m=min(k/2,n);return m*(m+1)/2+(k+k+(n-m-1))*(n-m)/2;}
};

三、销售利润最大化

 这题相信有人一看到最大化就直接去想贪心了,但是这题的贪心策略是不确定的,因为它是由区间和价格共同影响决定的,好,既然贪心不行,我们就要去想想动态规划

1.dp数组有几个维度,含义是什么?(最重要的一步,后面几个问题都是围绕这个问题展开的)

根据题目要求,我们定义dp[i]代表前i个房子能获取的最大利润

2.dp数组的递推公式

1)如果不选i这个位置的房子,那么相当于只考虑前i-1个房子,即dp[ i ]=dp[ i - 1 ]

2)如果选i这个位置的房子,那么我们只能选以i为右端点区间的买家,所以前i个房子的最大利润=以i为右端点区间的买家价格+该买家买的左端点之前的房屋最大利润

即dp[i]=offers[j][2]+dp[offer[j][0] - 1] (j是代表以i为有端点的买家下标)

上诉两种情况取最大值得到dp[i]

3.dp数组的初始化

dp[0]=0,即前0个房子的最大利润是0,前0个房子也就是没有房子可以选,故利润为0

动态规划问题总结:关键是将上面三个问题搞明白,尤其是第一个问题,它将直接关乎另外两个问题的思考难度和方法的正确性

代码如下

class Solution {
public:int maximizeTheProfit(int n, vector<vector<int>>& offers) {//将右端点相同的买家分类记录vector<vector<int>> v(n);for(int i=0;i<offers.size();i++)v[offers[i][1]].push_back(i);int dp[n+1];dp[0]=0;//数组初始化for(int i=1;i<=n;i++){dp[i]=dp[i-1];//不选第i个房子(i和房子下标差1)for(auto& x:v[i-1]){//选第i个房子,下标为i-1dp[i]=max(dp[i],dp[offers[x][0]]+offers[x][2]);//这里的offers中记录的左端点是下标,不用-1}}return dp[n];}
};

四、找到最长等值子数组

 这题找最长等值子数组,即将不同数字为等值的最大值都算出来,取最大值即可

不同数字的最大值计算用双指针(滑动窗口)

代码如下

class Solution {
public:int longestEqualSubarray(vector<int>& nums, int k) {int n=nums.size();vector<vector<int>> v(n+1);for(int i=0;i<n;i++)v[nums[i]].push_back(i);int ans=1;for(int i=1;i<=n;i++){for(int left=0,right=0;right<v[i].size();right++){while(v[i][right]-v[i][left]-(right-left)>k)left++;ans=max(ans,right-left+1);}}return ans;}
};

http://www.ds6.com.cn/news/104475.html

相关文章:

  • php做网站csdn山东疫情最新情况
  • 淄博桓台学校网站建设哪家好百度seo关键词优化市场
  • 廊坊那家做网站排行榜草莓永久地域网名入2022
  • 伍佰亿搜索引擎网站系统硬件优化大师
  • 建立问答类的网站汕头seo快速排名
  • 泉州网站开发交换友链
  • 网站建设icp备案重庆森林经典台词
  • 南山商城网站建设哪家公司靠谱已备案域名交易平台
  • club域名的网站今日全国疫情一览表
  • 长沙市委宣传部搜索引擎推广seo
  • 做外贸都得有网站吗国外搜索引擎网站
  • 济南公司做网站的价格网站备案查询系统
  • 青岛有哪些大型的互联网公司班级优化大师免费下载
  • wordpress标签设置seo培训学院官网
  • 新乐网站建设小红书seo软件
  • 黄山景区的网站做的怎么样百度官网登录
  • 响应式网站制作seo优化包括哪些内容
  • 网站搜索排名高怎么做网址查询地址查询
  • 郑州小程序定制公司百度seo优化排名软件
  • 潍坊作风建设网站长尾关键词挖掘词工具
  • wordpress masonry福建优化seo
  • 创建网站的英语济南百度开户电话
  • 响应式网站后台百度贴吧网页版登录入口
  • 网页设计实训报告1000字杭州网站seo外包
  • 怎么修改公司网站内容链网
  • 做网站后端语言用什么百度搜索指数排行
  • 互联网电子商务网站开发技术互联网营销方法有哪些
  • 杭州网站app开发公司山东建站
  • 购物网站建设实战教程答案web网页制作成品
  • 行业前10的网站建设网络营销内容