数组差

序号:#46难度:困难时间限制:1000ms内存限制:10M

描述

给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组元素和的差的绝对值 |SUM(A) - SUM(B)| 最大。 返回这个最大的差值。 例如: 有一个数组{1, 2, -3, 1},可以从中找出两个子数组A = {1, 2}与B = {-3},这两个子数组的元素和分别为 SUM(A) = 3,SUM(B) = -3,因此可以求得差的最大值 |SUM(A) - SUM(B)| = 6。

输入

使用逗号(,)分隔的一个整数数组

输出

一个整数,表示两个子数组元素和的差的最大值

输入样例

1,2,-3,1

复制样例

输出样例

6

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

char buf[1000005];

int a[1005];

int read(char *buf,int* num)

{

    int cnt=0;

    int  v;

    char *p = strtok(buf,",");

    while(p)

    {

        sscanf(p,"%d",&v);

        num[cnt++]=v;

        p = strtok(NULL,",");

    }

    return cnt;

}

int lmax[1005];

int lmin[1005];

int rmax[1005];

int rmin[1005];

int main()

{

  //  freopen("in.txt","r",stdin);

    while(~scanf("%s",buf))

    {

        int n=read(buf,a);

        int ma=-0x3f3f3f3f;int mi=0x3f3f3f3f;

        int tmp1=0;int tmp2=0;

        for(int i=0;i<n;i++)

        {

            tmp1=tmp1<0?a[i]:tmp1+a[i];

            ma=max(ma,tmp1);

            lmax[i]=ma;

            tmp2=tmp2>0?a[i]:tmp2+a[i];

            mi=min(mi,tmp2);

            lmin[i]=mi;

        }

        tmp1=0;tmp2=0;

        ma=-0x3f3f3f3f;mi=0x3f3f3f3f;

        for(int i=n-1;i>=0;i--)

        {

            tmp1=tmp1<0?a[i]:tmp1+a[i];

            ma=max(ma,tmp1);

            rmax[i]=ma;

            tmp2=tmp2>0?a[i]:tmp2+a[i];

            mi=min(mi,tmp2);

            rmin[i]=mi;

        }

        int ans=0;

        for(int i=1;i<n;i++)

        {

            ans=max(ans,abs(lmax[i-1]-rmin[i]));

            ans=max(ans,abs(lmin[i-1]-rmax[i]));

        }

        printf("%d\n",ans);

    }

    return 0;

}

小米oj 数组差(挺好的题)的更多相关文章

  1. lintcode:最大子数组差

    题目 最大子数组差 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大. 返回这个最大的差值. 样例 给出数组[1, 2, -3, 1], ...

  2. C++:最大子数组差

    最大子数组差 内存限制:128 MiB        时间限制:1000 ms 题目描述: 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B) ...

  3. lintcode-45-最大子数组差

    45-最大子数组差 给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组和的差的绝对值|SUM(A) - SUM(B)|最大. 返回这个最大的差值. 注意事项 子数组最少包含一个数 样例 给出 ...

  4. [小米OJ] 10. 爬楼梯

    dp 另: 小米oj上的测试样例是错的 ; ) function solution(line) { if (line == 0) return 0; if (line == 1) return 1; ...

  5. 小米OJ刷题日志

    虽然这OJ上的题比较水,但还是挺有意思的.关键是能赚钱 特别是提交方式 居然不支持C++,垃圾OJ 4. 最长连续数列 排序后dp 5. 找出旋转有序数列的中间值 写个排序就做完了. 6. 交叉队列 ...

  6. IT公司100题-32-交换元素,使数组差最小

    问题描述: 有两个整数序列a, b,大小都为n, 序列元素的值任意整数,无序. 要求:通过交换a, b 中的元素,使得sum(a)-sum(b),差最小. 例如: var a=[80, 40, 60, ...

  7. 九度OJ 1055:数组逆置 (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7324 解决:3429 题目描述: 输入一个字符串,长度小于等于200,然后将数组逆置输出. 输入: 测试数据有多组,每组输入一个字符串. ...

  8. Comet OJ - Contest #14 转转的数据结构题 珂朵莉树+树状数组

    题目链接: 题意:有两个操作 操作1:给出n个操作,将区间为l到r的数字改为x 操作2:给出q个操作,输出进行了操作1中的第x到x+y-1操作后的结果 解法: 把询问离线,按照r从小到大排序 每次询问 ...

  9. 小米oj 重拍数组求最大和

     重排数组求最大和 序号:#34难度:困难时间限制:1000ms内存限制:10M 描述 假设有一个n元素的数组(数组的元素索引从1开始),针对这个数组有q个查询请求,每个请求由一对整数li,ri组成, ...

随机推荐

  1. shell习题第17题:检测磁盘

    [题目要求] 写一个shell脚本,检测所有磁盘分区使用率和inode使用率并记录到以当天日期命名的日志文件里,当发现某个分区容量或者inode使用量大于85%时候,发邮件提醒 [核心要点] df d ...

  2. F12的用法

    F12在Web测试中十分重要,可以定位元素(UI自动化常用),查看网页响应时间/数据(定位BUG,测单页面响应时间→性能) Elements 点击这个按钮,将光标移至“Google”图片位置并点击,右 ...

  3. Python 线程&进程与协程

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  4. Elastic Search快速上手(3):搜索

    前言 存储好数据之后,便可通过RESTful API进行搜索. 详细文档可参考: --简单搜索https://www.elastic.co/guide/cn/elasticsearch/guide/c ...

  5. Java基础第一天--继承、修饰符

    继承 继承的概述: 继承是面向对象三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法. //创建父类 public class Fu{ public void sh ...

  6. 关于SpringMVC映射模型视图的几点小事

    一.SpringMVC概述 SpringMVC为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一. SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器, ...

  7. python打印菱形

    1.分析:首先python,我们分析了菱形的成分.双喜鸟seo输入2时,打印三行菱形:输入3时,打印五行菱形.也就是说,根据输入数字A,打印第2a-1行的菱形.菱形由一个三角形和一个倒三角形组成,两个 ...

  8. LEANGOO卡片

    转自:https://www.leangoo.com/leangoo_guide/leangoo_cards.html#toggle-id-10 Leangoo的卡片可以是需求.目标.任务.问题.缺陷 ...

  9. 【Git】一、安装、配置和仓库创建

    之前一直使用图形界面的git,只会一些最常用的操作,并没有说深入学习git的全部功能 开发这么久了,觉得是时候学习一下指令操作,更快捷也更bigger ------------------------ ...

  10. IDEA 运行报错:WARN: Establishing SSL connection

    使用JDBC连接数据库时出现报错, 报错内容:Wed Sep 26 14:30:31 CST 2018 WARN: Establishing SSL connection without server ...