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

php做网站教程傻瓜式php网站开发工具

php做网站教程,傻瓜式php网站开发工具,制定网站响应时间,哪里做外贸网站文章目录 Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值问题描述:分析代码前缀和前缀和 Tag Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值 问题描述: 给你一个整数数组 nums 。一个子数组 [ n u m s l ,…

文章目录

  • Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值

Maximum Absolute Sum of Any Subarray 任意子数组和的绝对值的最大值

问题描述:

给你一个整数数组 nums 。一个子数组 [ n u m s l , n u m s l + 1 , . . . , n u m s r − 1 , n u m s r ] [nums_l, nums_{l+1}, ..., nums_{r-1}, nums_{r}] [numsl,numsl+1,...,numsr1,numsr] 的 和的绝对值 为 a b s ( n u m s l + n u m s l + 1 + . . . + n u m s r − 1 + n u m s r ) abs(nums_l + nums_{l+1} + ... + nums_{r-1} + nums_{r}) abs(numsl+numsl+1+...+numsr1+numsr)

请你找出 n u m s nums nums 中 和的绝对值 最大的任意子数组(可能为空),并返回该 最大值 。

abs(x) 定义如下:

如果 x 是负整数,那么 a b s ( x ) = − x abs(x) = -x abs(x)=x
如果 x 是非负整数,那么 a b s ( x ) = x abs(x) = x abs(x)=x

1 < = n u m s . l e n g t h < = 1 0 5 − 1 0 4 < = n u m s [ i ] < = 1 0 4 1 <= nums.length <= 10^5\\ -10^4 <= nums[i] <= 10^4 1<=nums.length<=105104<=nums[i]<=104

分析

暴力

最简单的方法就是枚举出所有可能的子数组,计算其和的绝对值,然后取max。但是子数组的数量规模是 N 2 N^2 N2,所以暴力会TLE,而且即使计算出了子数组,计算其和也是需要时间的。

因为最终需要知道子数组绝对值最大值。

要得到这样的最大值,那么子数组的和sum一定要尽可能的大,或者尽可能的小,即最大的正数或者最小的负数
因此只需要在数组中找到子数组和最大的 s u m > = 0 sum>=0 sum>=0,或者 s u m < 0 sum<0 sum<0,sum的最小负数。

到这里,就和某个问题很像了

可以利用前缀和的思路,进行累加 s u m sum sum,然后与之前最小的 p r e m i n premin premin s u m − p r e m i n sum-premin sumpremin,此时 s u m − p r e m i n sum-premin sumpremin,就是可能的正数的最大子数组和
同样的 s u m − p r e m a x sum- premax sumpremax,就是可能的负数的最小子数组和

代码

前缀和

public int maxAbsoluteSum(int[] nums) {int n = nums.length, ans = nums[0];int premax = 0,premin = 0;int sum = 0 ;for(int i = 0;i<n;i++){ sum += nums[i]; int a = sum - premin; // 非负数的最大int b = premax -sum;//负数的绝对值最大ans = Math.max(ans,Math.max(b,a));premin = Math.min(sum,premin);premax = Math.max(sum,premax);}return ans;}

时间复杂度 O ( N ) O(N) O(N)

空间复杂度 O ( 1 ) O(1) O(1)

前缀和

public int maxAbsoluteSum(int[] nums) {int s = 0, mx = 0, mn = 0;for (int x : nums) {s += x;// mx = Math.max(mx, s);// mn = Math.min(mn, s);if (s > mx) mx = s;else if (s < mn) mn = s; // 效率更高的写法}return mx - mn; }

时间复杂度 O ( N ) O(N) O(N)

空间复杂度 O ( 1 ) O(1) O(1)

灵神的代码更精简,不过他是从前缀和的另一个角度来看这个问题的,所以有点不一样。

Tag

Array

Presum

http://www.yayakq.cn/news/209218/

相关文章:

  • 减压轻松网站开发小程序开发的发展前景
  • 部署自己做的网站吗网店营销活动策划方案
  • 网站整站优化公司做网站例子图片描述
  • wordpress建站怎么学云主机免费版
  • 网站做图片的大小苏州建设信息网
  • cms系统和网站后台系统做保洁网站找谁做
  • 网站无icp备案做网站的名字大全
  • 苏州网站建设公司找哪家最好的网页设计公司
  • 做医疗科普的网站上海建设工程信息网查询
  • 柳城企业网站制作哪家好公众号开发者id在哪
  • 官网查询网站某颜值女主播低俗内容流出视频
  • 摄影网站开发的背景南昌网站建设q479185700惠
  • 请别人做网站需要注意什么问题网站建设域名是什么
  • 用花生壳做映射的网站需要备案家电设计网站
  • 怎么把网站黑掉郑州客串seo
  • wap网站设计业务型网站首页
  • 东莞网站推广排行wordpress的模板修改在哪个文件夹
  • 网站建设合同交印花税吗怎么提升网站的流量吗
  • 手机电子商务网站建设问卷调查关键词推广排名软件
  • 小型静态网站是什么原因你是网站设计有限公司的项目经理
  • php网站开发实例教程码源营销顾问
  • 口红机网站怎么做的上海二手房
  • 专业做商铺的网站便宜的做网站公司
  • 门户网站建设流程求个网站知乎
  • 给宝宝做衣服网站好各大浏览器的网址
  • react用于网站开发wordpress博客主题汉化
  • 做百度竞价对网站空间有什么要求网站建设及政务公开工作总结
  • 大庆市住房和城乡建设局网站wordpress完成静态化
  • 网站后台做数据库备份代码网站开发的推荐
  • 网站结构和布局区别logo网站素材