找出数组中最小的两个数

找出数组中最小的两个数,在一次遍历中就可以实现,m1来表示最小的值,m2表示出现次小的值

代码如下:

import java.util.Scanner;

public class FindTwoLow {
    public static void main(String []args){

        //find  two  lowest
        int[] arr={5,4,6,3,9,12,35,42,18,29,30};
        int m1,m2;//存储两个最小值
        m1=arr[0];
        m2=arr[0];
        for(int i=0;i<arr.length;i++){
            if(arr[i]<m1){
                m2=m1;
                m1=arr[i];
            }else if(arr[i]<m2){
                m2=arr[i];
            }
        }
        System.out.println(m1+","+m2);

    }


}

思路:第一个判断用来保存最小值,第二个判断用来保存次小值,当出现比m1小的数的时候,把之前m1的值给m2,更新m1;

当第一个条件不满足,才会去判断第二个条件,为的是怕当前arr[i]比次小值小,所以对其判断下。如此一来 当数组遍历一遍后,就找到了最小值 m1次小值m2;

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值