中易网

java一个一维数组有2个相同最小值和最大值,怎么输出及其位置?

答案:3  悬赏:40  
解决时间 2021-02-27 01:35
比如int [] a={12,11,134,2,21,42,2,111,23,134,54,62},怎么输出2和134,以及他们对应的角标
最佳答案
遍历计算,赋值。
    public static void main(String[] args){
        int [] a={12,11,134,2,21,42,2,111,23,134,54,62};

        int tempmin = 0, tempmax = 0;
        List<Integer> minIndex = new ArrayList<Integer>(), maxIndex = new ArrayList<Integer>();

        for (int i = 0; i < a.length; i++)
        {
            if (i == 0)
            {
            //这里假设了第一位数字就是最大值和最小值
                tempmin = a[0];
                tempmax = a[0];
                minIndex.add(0);
                maxIndex.add(0);
            }
            else
            {
                int temp = a[i];
                if (temp < tempmin)
                {
                    tempmin = temp;
                    minIndex.clear();
                    minIndex.add(i);
                }
                else if (temp == tempmin)
                {
                    minIndex.add(i);
                }

                if (temp > tempmax)
                {
                    tempmax = temp;
                    maxIndex.clear();
                    maxIndex.add(i);
                }
                else if (temp == tempmax)
                {
                    maxIndex.add(i);
                }
            }

        }
        System.out.println("最小值下标为:" + minIndex + "   最大值下标为:" + maxIndex);
    } 
快试试啊,正确答案呢····


怎么看不到你的追问呢?
全部回答
先排序,找出最小和最大值,在和原数组数据进行比较,这样很容易得到数组下标。
public static void main(String[] args) { List<Integer> arr = new ArrayList<Integer>(); arr.add(12); arr.add(11); arr.add(134); arr.add(2); arr.add(21); arr.add(42); arr.add(2); arr.add(用面向对象思想。 public class Test {     int num;     int index;     Test(int num, int index)     { this.num = num; this.index = index;     }     public static void main(String[] args)     { int[] a = { 12, 11, 134, 2, 21, 42, 2, import java.util.*; public class Test {   public static void main(String[] args) {   int[] num={12,11,134,2,21,42,2,import java.util.arrays; public class test1 { public static void main(string[] args) { int[] ary = {23, 43, 21, 67, 33, 89, 70}; arrays.sort(ary); int max = ary[ary.length-1]; int min = ary[0]; system.out.println("最大值是:" + max); system.out.println("最小值是:" + min); system.out.println("差值是:" + (max - min)); } } 运行结果 最大值是:89 最小值是:21 差值是:68
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
畜禽养殖废水处理后为什么变色
2017考研成绩学科英语328分有机会调剂吗?
求科普这是可食用薄荷吗?
没有爱情,人真的是具没有灵魂的尸体吗
为何上网上一半,就没网络了,网络连接还显示
梦见我和喜欢的人和情敌在一块我喜欢的人靠在
请问iphone6s指纹坏了,还能升级ios11吗?
尚未接入互联网 什么意思?
嘉实多机油字母数字代表的意思
从人民广场到万达广场
润新苗幼儿园地址有知道的么?有点事想过去
怎么投诉武汉海尔物流公司
天宇锁业地址在什么地方,想过去办事
会声会影9分享渲染时特别慢,请问是怎么回事
中职舞蹈面试试讲范围
推荐资讯
前麦弗逊后多连杆哊什么优势 为啥多数车采用
瓜路门在什么地方啊,我要过去处理事情
金土地宾馆怎么去啊,有知道地址的么
助力摩托车不加油门打不着火,一放油门就熄火
这只哈士奇什么脸谱?不是三火也不是桃脸。
梦幻西游为什么两区不能同时上
泰康人寿保险股份有限公司(江津中路)地址有知
宝马7系轮胎要多少钱
广安开发区管委会在什么地方啊,我要过去处理
瓦叫果怎么去啊,有知道地址的么
云飞一首《梦中的额吉》,太催泪,不知唱哭了
常州市旭日车辆配件厂怎么去啊,有知道地址的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?