洛谷B2094 不与最大数相同的数之和(java)

题目描述

输出一个整数数列中不与最大数相同的数字之和。

输入格式

输入分为两行:

第一行为N(N 为接下来数的个数,N≤100);

第二行为 N 个整数,数与数之间以一个空格分开,每个整数的范围是 −1000,000到 1000,000。

输出格式

输出为 N 个数中除去最大数其余数字之和。

输入输出样例

输入 #1

3
1 2 3 

输出 #1

3

运行代码

import java.util.*;
public class Main{
        public static void main(String[]args){
            Scanner s=new Scanner(System.in);
            int N=s.nextInt();
            int []a=new int [105];
            int sum=0;
            for(int i=1;i<=N;i++){
                int num=s.nextInt();
                a[i]=num;
            }
            Arrays.sort(a,1,N+1);//按从小到大重新排序
            for(int i=1;a[i]!=a[N];i++){
                sum+=a[i];
            }
            System.out.println(sum);
        }
    }

小结

这里用到Java中的Arrays.sort()排序

①Arrays.sort(int[ ] a)

对一个数组中的所有元素进行排序,并且是按从小到大的顺序

例:

import java.util.*;
public class Main{
    public static void main(String[]args){
        int[] a = {2,8,7,6,9,5,3,4,1};
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
    }
}

输出 #1

[1, 2, 3, 4, 5, 6, 7, 8, 9]

②Arrays.sort(int[ ] a, int fromIndex, int toIndex)

对数组部分排序,即数组a的下标从fromIndex到toIndex-1的元素排序

这里要注意的是到toIndex-1,并不包含toIndex下标

例:

import java.util.*;
public class blue5{
    public static void main(String[]args){
        int[] a = {2,8,7,6,9,5,3,4,1};
        Arrays.sort(a,0,5);
        System.out.println(Arrays.toString(a));
    }
}

输出 #2

[2, 6, 7, 8, 9, 5, 3, 4, 1]

你可能感兴趣的:(java,算法)