精华内容
下载资源
问答
  • =10000)数字,求出这N数字中最大值和最小值。每数字的绝对值不大于1000000。 输入描述: 输入包括组测试用例,每组测试用例由一整数N开头,接下去一行给出N整数。 输出描述: 输出包括两整数...

    题目链接:求最大最小数

    题目描述:

    输入N个(N<=10000)数字,求出这N个数字中的最大值和最小值。每个数字的绝对值不大于1000000。

    输入描述:

    输入包括多组测试用例,每组测试用例由一个整数N开头,接下去一行给出N个整数。

    输出描述:

    输出包括两个整数,为给定N个数中的最大值与最小值。

    示例:

    输入:

    5
    1 2 3 4 5
    3
    3 7 8

    输出:

    5 1
    8 3

    代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main(){
        int n, *lst;
        while(scanf("%d", &n)!=EOF){
            lst = (int*)malloc(sizeof(int)*n);
            int x=0;
            while(1){
                scanf("%d", &lst[x]);
                x++;
                if(getchar()=='\n') break;
            }
            int max=lst[0], min=lst[0];
            for(int i=1; i<n; i++){
                if(lst[i]>max) max=lst[i];
                if(lst[i]<min) min=lst[i];
            }
            printf("%d %d\n", max, min);
            free(lst);
        }
        return 0;
    }

     

    展开全文
  • =10000)数字,求出这N数字中最大值和最小值。每数字的绝对值不大于1000000。 输入描述: 输入包括组测试用例,每组测试用例由一整数N开头,接下去一行给出N整数。 输出描述: 输出包括两整数,为...

    题目描述

    输入N个(N<=10000)数字,求出这N个数字中的最大值和最小值。每个数字的绝对值不大于1000000。

    输入描述:

    输入包括多组测试用例,每组测试用例由一个整数N开头,接下去一行给出N个整数。

    输出描述:

    输出包括两个整数,为给定N个数中的最大值与最小值。

    示例1

    输入

    复制

    5
    1 2 3 4 5
    3
    3 7 8
    

    输出

    复制

    5 1
    8 3

    代码1:

    #include <stdio.h>
    #include <string.h>
    int main(){
    //输入包括多组测试用例,每组测试用例由一个整数N开头,接下去一行给出N个整数。


        int n,i;
        int temp;
        int max,min;
        while(scanf("%d",&n)!=EOF){
            for(i=0;i<n;i++){
                scanf("%d",&temp);
                if(i==0){
                max=temp;min=temp;
                }
                else{
                    min=temp<min?temp:min;
                    max=temp>max?temp:max;
                   }
                }
            printf("%d %d\n",max,min);
            }

        return 0;
    }
    代码2:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main(){
        int n, *lst;
        while(scanf("%d", &n)!=EOF){
            lst = (int*)malloc(sizeof(int)*n);
            int x=0;
            while(1){
                scanf("%d", &lst[x]);
                x++;
                if(getchar()=='\n') break;
            }
            int max=lst[0], min=lst[0];
            for(int i=1; i<n; i++){
                if(lst[i]>max) max=lst[i];
                if(lst[i]<min) min=lst[i];
            }
            printf("%d %d\n", max, min);
            free(lst);
        }
        return 0;
    }

    展开全文
  • 求数组两两之差绝对值最小

    千次阅读 2013-10-29 21:26:46
    题目是这样:有一整数数组,请求出两两之差绝对值最小值,记住,只要得出最小值即可,不需要求出是哪两数。 这题首先一看就很面熟,貌似此类题很了,数组最大连续,最小连续绝对值等等。O(N^2)...

    题目是这样的:有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。

    这题首先一看就很面熟,貌似此类的题很多了,数组的最大连续和,最小连续绝对值等等。O(N^2)的解法肯定是最基础的,不过面试一般这种解法都是无用的。

    解法一:

    一轮排序,然后两两相邻的依次相减,次解法也没什么难度。

    解法二:

    下面就开始找有没有O(n)的解法了,今天的重头戏就来了,看如下解法:


    将现在的问题进行转化:
    设这个整数数组是a1,a2,...,an
    构造数组B=(b1,b2,...,bn-1)

    b1 = a1-a2,
    b2 = a2-a3,
    b3 = a3-a4,
    ...
    bn-1 = an-1 - an

    那么原数组中,任意两整数之差ai-aj(1<=i,j<=n)可以表示成
    B中第i个到第j-1个元素的连续求和
    例如b2+b3+b4 = (a2-a3) + (a3-a4) + (a4-a5) = a2-a5
    O(n)构造出B序列后,用类似“最大子段和”算法求“最小绝对值子段和”.


    nt GetMinAbsoluteSubsequence(int B[],int begin,int nLen)
    {
        int nGlobal=INT_MAX;
        int nSuffix=0;
    
        for(int i=begin; i<nLen; i++)
        {
            nSuffix+=B[i];
             if(abs(nSuffix)<abs(nGlobal))
             {
                 nGlobal=nSuffix;
             }
            if(i+1<nLen)
            {
                if(nSuffix*B[i+1]>0)             //何时清零 ?
                    nSuffix=0;
            }
         }
         return abs(nGlobal);

    开始看到这种解法,乍一看非常的nb,这么犀利的转化,真心膜拜。后来仔细理解了下,发现有问题!!!!

    我是找不到这种解法的递归公式,因为第i+1个问题不仅仅和第i个问题相关,特别是上面的这个地方

     if(i+1<nLen)
            {
                if(nSuffix*B[i+1]>0)             //何时清零 ?
                    nSuffix=0;
            }

    根本看不出有什么逻辑啊。


    仔细考虑如下:其实转化为B数组后,求得就是最小绝对值子段。此类问题已经有了解法:参考http://blog.csdn.net/julianxiong/article/details/7396756。这种解法的复杂度为O(logn*n),是肯定无法达到O(N)的,为了验证的自己的想法(本人小菜,不敢轻易下结论),又继续搜索相关问题,参加下面2个:http://www.cnblogs.com/HappyAngel/archive/2011/08/22/2149916.html  http://bbs.csdn.net/topics/190016951 ,通过大牛们的历史分析,这题还真是无法找到O(N)的算法。


    最后吐槽下,我发下我在搜索这个问题的时候吗,网上很多人给出了上面错误的答案,难道他们不去理解下上面的算法吗,毫无逻辑可言(求出B数组后那一部分,前面的转化思想还是相当犀利,也是需要借鉴的),希望大家在转载的时候,能够好好的验证下,免得给我这种小菜错误的答案啊。



    最后小总结下:一般此类题遇到绝对值3个字,基本上最好的就是O(logn*n),),一般都是转化成某个数组以后,排序,两两相减,绝对值无法dp出的,所以各位在遇到此类题的时候要小心。





    展开全文
  • 牛客网--最大最小值

    2019-01-27 23:01:08
    =10000)数字,求出这N数字中最大值和最小值。每数字的绝对值不大于1000000。 输入描述: 输入包括组测试用例,每组测试用例由一整数N开头,接下去一行给出N整数。 输出描述: 输出包括两整数,为给定N...

    题目描述
    输入N个(N<=10000)数字,求出这N个数字中的最大值和最小值。每个数字的绝对值不大于1000000。
    输入描述:
    输入包括多组测试用例,每组测试用例由一个整数N开头,接下去一行给出N个整数。
    输出描述:
    输出包括两个整数,为给定N个数中的最大值与最小值。

    代码:

    #include <iostream>
    using namespace std;
     
    int main(){
        int num;
        while(scanf("%d",&num) != EOF){
            int  data, max = -65536, min =65535;//表示int类型的最大最小值
            for(int i = 0; i < num; i++){
                cin >> data;
                if(data>=max){
                    max = data;
                }
                if(data <= min){
                    min = data;
                }
            }
            cout << max << " " << min <<endl;
        }
        return 0;
    }
    
    展开全文
  • 最短距离的数学表达式可以写出来,实际上就是求这距离的最小值。一维问题是曼哈顿距离,求这最小值用的方法是绝对值不等式,建议先从两站点入手找思路,然后扩展到三,四,最后得出的一般思路是第一站点...
  • Python内置函数: ...返回数字的绝对值. def fun(x): if x < 0: return -x return x print fun(10) 常用函数: abs() >>> abs(-100) 100 取列表最大值和最小值 max() >>> max(...
  • Python内置函数:官方帮助文档:返回数字的绝对值.def fun(x):if x < 0:return -xreturn xprint fun(10)常用函数:abs()>>> abs(-100)100取列表最大值和最小值max()>>> max('1235',123)'1235'...
  • =10000)数字,求出这N数字中最大值和最小值。每数字的绝对值不大于1000000。 输入描述: 输入包括组测试用例,每组测试用例由一整数N开头,接下去一行给出N整数。 输出描述: 输出包括两整数,为给定N...
  • 1.题目详情 给定一整数数组 A,我们只能用以下方法修改该数组:我们选择某个...因为最后要求出最大嘛,易知,列表尽可能绝对值正数剩的多就能最大。因此我们实际上只需要在重复k次反转时,每一次反转都是
  • 例如目标函数是求最大最小值问题,变量带绝对值符号,约束条件只能二选一。这篇文章介绍建模技巧,让你轻松地将上述棘手难题转换为线性规划问题。1. 线性规划问题建模重要性现实生活中,有很问题可以描述成...
  • NYOJ-422 字串之差

    千次阅读 2011-11-28 16:24:27
    解题思路: 这道题读完题应该就知道是一道动态...而这道题了一条件,是求绝对值,而且是最大值和最小值的绝对值。 我方法是开2dp数组。dp[i]表示到第i元素为止最大值或者最小值,然后用maxmin记录最
  • poj_3977 折半枚举

    2015-10-25 20:21:00
    其中一个或多个数字加和可以得到s,求出s的绝对值的最小值,并给出当s取绝对值最小值时,需要加和的数字的个数。 题目分析 需要枚举集合的所有情况,2^35,会超时。考虑使用折半枚举的方法,考虑前 N/2个数字构成...
  • 数学函数 # 求绝对值 num1 = -18 num2 = abs(num1) print(num2) ...# 求多个数中的最小值 print(min(5,3,2,8,6,9,11,3,7)) # 求x的n次方 print(pow(2, 4)) # 四舍五入 # round(x[, n])将浮点数进...
  • 首选,要使任意两元素的绝对值小于等于limit,也就是这个子数组中绝对值最大元素小于等于limit,而我们根据数学知识很快可以知道,区间范围内最大值和最小值的绝对值之差最大, 所以这题目也就转换为...
  • 由于有多个需要“施法”的点,所以相当于对每个这样的点,询问与它的距离在T以内的最长边的最小值,即多次询问。 最长边最小之类的,肯定是最小生成树没跑了。BUT 若是对每个点这样做的话,肯定会TLE。 所以考虑一...
  • 也就是求|x-a1|+|x-a2|+...+|x-an|的最小值。 可以证明,当x为a1,a2,...,an的中位数时该式有最小值。 第一绝对值不等式:||a|-|b|| ≤|a±b|≤|a|+|b| 这里要用的是|a|+|b|≥|a+b| 可以推出如|a|+|b|+|c|≥|a+b...
  • Min Value 牛客网测试平台 题意:一由 N 数组成的序列 a1,a2,a3,······,an-1,an,从中任选两数 ai aj,使得 ...输出两数,中间用空格分开,ai + aj 的绝对值的最小值和 i + j (如果有组 i
  • (1)abs()求一整数的绝对值 (2)max(),min()求最大值,最小值 (3)hex()将一整数转化为十六进制,“0x”格式 (4)类型转化函数:int(),float(),str() 2.定义函数 在Python中,定义...
  • 9.js中数学函数Math

    2020-11-17 10:58:19
    之所以叫做数学函数,是因为Math这对象中提供了很操作数字方法 Math中提供常用方法 abs:取绝对值 ceil/floor:向上或者向下取整 round:四舍五入 sqrt:开平方 pow:取幂(NM次方) max...
  • Lei ❤函数初识

    2020-02-12 23:35:11
    例如Math.random()方法 来产生一随机数 ,还有最大值,最小值绝对值函数这些都是Math类中常见函数 还有其他指数函数还有三角形函数等等,但是除过这些类中包含函数外,我们自己也可以自定义函数,自己去...
  • 1.4.7 双亲、孩子兄弟节点查询(链式结构) 162 范例1-61 双亲、孩子兄弟节点查询 162 ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.8 中序遍历二叉树...
  • L1范数是L0范数最优化近似,L1范数是L0范数最紧凸松驰(比如函数存在多个局部极小值,我们可以松弛成凸函数,只有一个最小值),反正就是L0不能优化,L1可以优化,L1可以代替L0.L1是绝对值,把W中有些项...
  • math函数属性 Math.PI:返回圆周率。 math函数方法 绝对值: Math.abs(); 对数进行上舍入: Math.ceil();... xy次幂,y可以是分数 求最大最小值:Math.max...maxmin方法中可以有多个值。 随机数: Math.random()...
  • JavaScript中内置对象

    2019-11-20 23:51:02
    JavaScript提供了多个内置对象:Math、Date、Array、String等 Math对象 属性、方法名 功能 Math.PI 圆周率 Math.floor() 向下取整 Math.ceil() 向上取整 Math.round() 四舍五入 就近取整 -3.5=-3 ...
  • Math是一对象数据类型值,在它堆内存中,存储了很多的内置方法属性,这些方法一般都是用来操作数字,所以我们把Math称为“数学函数对象”。 1.Math.PI =>获取圆周率 2.Math.abs([N]):获取数字N...
  • = 35)个数的集合,每个数的绝对值小于等于1015,找一个非空子集,使该子集中所有元素的和的绝对值最小,若有多个,则输出个数最小的那个。 分析: 1、将集合中的元素分成两半,分别二进制枚举子集并记录子集所...
  • 求最大最小数

    2019-03-05 16:16:00
    =10000)数字,求出这N数字中最大值和最小值。每数字的绝对值不大于1000000。 输入描述: 输入包括组测试用例,每组测试用例由一整数N开头,接下去一行给出N整数。 输出描述: 输出包括两整数,为...
  • 则只有C=CC时,T1=T2,所以所有 C对应的sum减去CC对应的sum的绝对值的最小值即为答案 最开始没有排序,而知dfs_back每枚举出一CC就在存好的C中遍历一边,导致TLE,再仔细看题解,发现只要排序后枚举相邻的两C...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

多个绝对值和的最小值