【Java初阶练习题】-- 数组练习题

数组练习题

  • 1. 创建的数组,并且赋初始值
  • 2. 改变原有数组元素的值
  • 3. 数组所有元素之和
  • 4. 奇数位于偶数之前
  • 5.两数之和
  • 6. 只出现一次的数字
  • 7. 多数元素
  • 8. 给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。

1. 创建的数组,并且赋初始值

要求:创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100

    public static void main(String[] args) {
        //创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
        int[] array = new int[100];
        for (int i = 0; i < 100; i++) {
            array[i] = i + 1;
        }
        System.out.println(Arrays.toString(array));
    }

在这里插入图片描述

2. 改变原有数组元素的值

要求:实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到 对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}

    public static void main(String[] args) {
        int[] array = {1,2,3};
        tranForm(array);
        System.out.println(Arrays.toString(array));
    }
    public static void tranForm(int[] array) {
        for (int i = 0; i < array.length; i++) {
            array[i] = array[i] * 2;
        }
    }

3. 数组所有元素之和

实现一个方法 sum, 以数组为参数, 求数组所有元素之和.

    public static void main3(String[] args) {
        int[] array = {1,2,3};
        int ret = sum(array);
        System.out.println(ret);
    }
    public static int sum(int[] array) {
        int sumArr = 0;
        for (int i = 0; i < array.length; i++) {
            sumArr += array[i];
        }
        return sumArr;
    }

【Java初阶练习题】-- 数组练习题_第1张图片

4. 奇数位于偶数之前

调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。
如数组:[1,2,3,4,5,6]调整后可能是:[1, 5, 3, 4, 2, 6]

    public static void main(String[] args) {
        int[] array = {1,2,3,4,5,6};
        func1(array);
        System.out.println(Arrays.toString(array));
    }
    public static void func1(int[] array) {
        int i = 0;
        int j = array.length - 1;
        while (i < j) {
            while (i < j && array[i] % 2 != 0) {
                i++;
            }
            while (i < j && array[j] % 2 == 0) {
                j--;
            }
            int tmp = array[i];
            array[i] = array[j];
            array[j] = tmp;
        }
    }

【Java初阶练习题】-- 数组练习题_第2张图片

5.两数之和

//输入:nums = [2,7,11,15], target = 9
//输出:[0,1]
//解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
    public static void main(String[] args) {
        int[] nums = {2,7,11,15};
        int[] ret = fun1(nums,9);
        System.out.println(Arrays.toString(ret));
    }
    public static int[] fun1(int[] array,int target) {
        int[] tmp = new int[2];
        for (int i = 0; i < array.length; i++) {
            for (int j = i+1; j < array.length; j++) {
                if (array[i] + array[j] == target) {
                    tmp[0] = i;
                    tmp[1] = j;
                    return tmp;
                }
            }
        }
        return new int[]{-1,-1};
    }

【Java初阶练习题】-- 数组练习题_第3张图片

6. 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    public static void main(String[] args) {
        int[] array = {2,2,1};
        int ret = fun5(array);
        System.out.println(ret);
    }
    public static int fun5(int[] array) {
        int tmp = 0;
        for (int i = 0; i < array.length; i++) {
            tmp = tmp ^ array[i];
        }
        return tmp;
    }

【Java初阶练习题】-- 数组练习题_第4张图片

7. 多数元素

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

    public static void main(String[] args) {
        int[] array = {2,2,1,1,1,2,2,2};
        int ret = fun7(array);
        System.out.println(ret);
    }
    public static int fun7(int[] array) {
        Arrays.sort(array);
        return array[array.length/2];
    }

【Java初阶练习题】-- 数组练习题_第5张图片

8. 给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。

【Java初阶练习题】-- 数组练习题_第6张图片

    public static void main(String[] args) {
        int[] array = {2,6,4,1};
        boolean ret = fun8(array);
        System.out.println(ret);
    }
    public static boolean fun8(int[] array) {
        int count = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] % 2 != 0) {
                count++;
                if (count == 3) {
                    return true;
                }
            } else {
                count = 0;
            }
        }
        return false;
    }

【Java初阶练习题】-- 数组练习题_第7张图片

你可能感兴趣的:(java初阶习题,java,算法)