Java操作数组的常用算法总结

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

public class BaseAlgorithm {  
  
    public static void main(String[] args) {  
        int[] arr = { 1, 7, 3, 30, 55, 21, 3, 5, 1, 7, 3 };  
        System.out.println(findMaxValue(arr));  
        System.out.println(findMostValue(arr));  
        System.out.println(findMaxLen(arr));  
    }  
  
    /** 
     * 找出数组中最大元素 
     */  
    public static int findMaxValue(int[] arr) {  
        int max = arr[0];  
        for (int i = 1; i < arr.length; i++) {  
            if (arr[i] > max) {  
                max = arr[i];  
            }  
        }  
        return max;  
    }  
  
    /** 
     * 找出数组中重复出现最多的元素 
     */  
    public static int findMostValue(int[] arr) {  
        // 出现最多次数  
        int most = 0;  
        // 出现最多次数的数组下标  
        int index = 0;  
        for (int i = 0; i < arr.length; i++) {  
            int temp = 1;  
            for (int j = i; j < arr.length; j++) {  
                if (arr[i] == arr[j]) {  
                    temp++;  
                }  
            }  
            if (temp > most) {  
                most++;  
                index = i;  
            }  
        }  
        System.out.println("最多出现了" + most + "次");  
        return arr[index];  
    }  
  
    /** 
     * 找出最长连续递增序列的长度 
     */  
    public static int findMaxLen(int[] arr) {  
        int maxLen = 1;  
        int temp = 1;  
        for (int i = 0; i < arr.length - 1; i++) {  
            if (arr[i + 1] >= arr[i]) {  
                temp++;  
            } else {  
                if (temp > maxLen) {  
                    maxLen = temp;  
                }  
                temp = 1;  
            }  
        }  
        return maxLen;  
    }  
  
}