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

公司主页网站制作/广州营销型网站

公司主页网站制作,广州营销型网站,中国机械加工网易下拉方法,响应式网站建设一般多少钱题目链接 题意 给定一个数组 求任意一个子数组和的绝对值的最大值(子数组可以为空) 方法一 对于最大子段和、最小子段和分别动态规划 最后对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.whsansanxincailiao.cn/news/31945080.html

相关文章:

  • 在家做网站维护兼职/百度seo排名报价
  • 网站页面跳转怎么做/今日十大新闻
  • 2免费做网站/云优客seo排名公司
  • 社区建设网站/广州seo网站公司
  • 网站架设/宁波seo快速排名
  • 长沙便宜做网站/站长网站大全
  • 网页版传奇源码/北京网站优化
  • 昆明网络推广昆明网站建设昆明昆明/太原网站排名推广
  • 网站做自动群发百度搜录/国外网站推广平台有哪些
  • 肃州区城乡和住房建设局网站/公司网站建设需要注意什么
  • 牛商网做网站/竞价代运营外包公司
  • 网站建好了seo怎么做/seo推广优化
  • 产品网站推广方案/百度收录提交申请
  • 做淘宝首页初学ps视频网站/app推广拉新接单平台
  • 深圳手机网站建设服务/上海网络公司seo
  • 学校官网网页设计模板/seo和sem是什么
  • 武汉网站建设怎么样/太原网站建设谁家好
  • 商城网站建设需要多少钱/seo新站如何快速排名
  • 修改wordpress发表评论/企业网站优化价格
  • 泉州网站建设+推广/美国站外推广网站
  • 赚钱游戏 真实/北京网站seo哪家公司好
  • 大陆做爰视频网站/河南网站公司
  • 个人网站的色彩设计怎么做/公司网络营销实施计划
  • 商务部网站建设情况汇报/百度推广点击收费标准
  • 4d网站广告图用什么做的/肇庆百度快速排名
  • 做网站需要注意的问题/百度搜索引擎的网址是
  • wordpress文本组件使用方法/北京网站优化公司哪家好
  • 遂宁商城网站建设报价/百度极速版推广
  • 网站用花生壳nas做存储/整站优化网站
  • 本科自考是什么意思/seo网站关键词优化价格