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

织梦快速建站seo技术大师

织梦快速建站,seo技术大师,wordpress建站教程百科,5000人朋友圈推广多少钱题目链接 题意 给定一个数组 求任意一个子数组和的绝对值的最大值(子数组可以为空) 方法一 对于最大子段和、最小子段和分别动态规划 最后对abs取max 思路 dpmx[i]表示以nums[i]结尾的子段中最大子段和 dpmn[i]表示以nums[i]结尾的子段中最小子段和…

题目链接

题意

给定一个数组
求任意一个子数组和的绝对值的最大值(子数组可以为空)

方法一

对于最大子段和、最小子段和分别动态规划
最后对abs取max

思路

dpmx[i]表示以nums[i]结尾的子段中最大子段和
dpmn[i]表示以nums[i]结尾的子段中最小子段和

Code

#define pii pair<int,int>
#define ar2 array<int,2>
#define ar3 array<int,3>
#define ar4 array<int,4>
#define endl '\n'
void cmax(int &a,int b){a=max(a,b);};
void cmin(int &a,int b){a=min(a,b);};
const int N=2e5+10,MOD=1e9+7,INF=0x3f3f3f3f;const long long LINF=LLONG_MAX;const double eps=1e-6;
int a[N];class Solution {
public:int maxAbsoluteSum(vector<int>& nums) {int n=nums.size();vector<int>dpmx(n),dpmn(n);int ans=0;dpmx[0]=nums[0];for(int i=1;i<n;i++){dpmx[i]=max(dpmx[i-1],0)+nums[i];cmax(ans,dpmx[i]);}dpmn[0]=nums[0];cmax(ans,abs(dpmn[0]));for(int i=1;i<n;i++){dpmn[i]=min(dpmn[i-1],0)+nums[i];cmax(ans,abs(dpmn[i]));}return ans;}
};

实现细节

注意记得ans要跟dpmn的第一个元素取max

空间优化版

#define pii pair<int,int>
#define ar2 array<int,2>
#define ar3 array<int,3>
#define ar4 array<int,4>
#define endl '\n'
void cmax(int &a,int b){a=max(a,b);};
void cmin(int &a,int b){a=min(a,b);};
const int N=2e5+10,MOD=1e9+7,INF=0x3f3f3f3f;const long long LINF=LLONG_MAX;const double eps=1e-6;
int a[N];class Solution {
public:int maxAbsoluteSum(vector<int>& nums) {int n=nums.size();int ans=abs(nums[0]);int f0=nums[0];for(int i=1;i<n;i++){int nf=max(f0,0)+nums[i];cmax(ans,nf);f0=nf;}f0=nums[0];for(int i=1;i<n;i++){int nf=min(f0,0)+nums[i];cmax(ans,abs(nf));f0=nf;}return ans;}
};

方法二

前缀和 遍历尝试以[1,n-1]每个元素作为子数组结尾的情况 对n个sum取max

思路

对于每个点作为结尾 考虑前面的子段和[0,j]最小或者最大
这样[j+1,i]的子段和就是[0,i]中所有子数组和最大或者最小的
然后对abs取max


这里使用set维护前面的子段和 也可以开一个大根堆和一个小根堆

Code

class Solution {
public:int maxAbsoluteSum(vector<int>& nums) {int n=nums.size();set<int>st;int sum=0,ans=0;st.emplace(0);for(int i=0;i<n;i++){sum+=nums[i];ans=max({ans,abs(sum-*st.begin()),abs(sum-*st.rbegin())});st.emplace(sum);}return ans;}
};
http://www.dtcms.com/wzjs/137691.html

相关文章:

  • 天猫的网站导航怎么做的武汉网站竞价推广
  • 成都专门做公司网站的公司百度开户渠道商哪里找
  • 如何查看网站是否被做跳转河南靠谱seo地址
  • wordpress 默认 urlseo运营人士揭秘
  • 网站推广排名报价关键词有哪些
  • 如何做旅游网站成都百度推广公司电话
  • 如何用 python 做网站设计师培训班多少钱
  • 外贸工厂 网站建设百度排名怎么做
  • 动态网站开发实训心得重庆seo网站推广优化
  • 成都市那里有网站建设制作公司黄山seo公司
  • 开发者门户网站是什么意思sem竞价是什么意思
  • 做网站背景的图片农产品营销方案
  • 游戏网站开发实验报告seo变现培训
  • 网站建设背景需要写些什么热点新闻事件及观点
  • 网络建设服务与网站运营推广手游免费0加盟代理
  • 固镇做网站多少钱爱站网seo查询
  • discuz 门户网站模板中国营销网
  • 网站推广的步骤百度指数app
  • 提供网站建设收费标准广告公司营销策划方案
  • 邢台做移动网站找谁个人网页制作教程
  • 导航网站 win8风格关键词制作软件
  • 网站视频插件怎么做重庆快速网络推广
  • 南昌定制网站公司百度大数据官网
  • 上海做网站公司做网站的公司有哪些疫情最新数据
  • 招标资源网官网seo研究中心晴天
  • 如何建设微网站外链代发公司
  • 北京瑞浩信息管理咨询有限公司天津seo排名效果好
  • 网络干什么赚钱seo优化多久能上排名
  • 如何在电影网站中做淘客百度小说搜索热度排行榜
  • 网站实现中英文深圳短视频seo教程