【刷题系列】 Java数组小题(一)

简介: 【刷题系列】 Java数组小题(一)

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

实现一个方法 , 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
public class Main{
    public static void main(String[] args) {
          int[] array ={1,2,3};
         func(array);
         System.out.println(Arrays.toString(array));
    }
    public static void func(int[] array) {

        for (int i = 0; i < array.length; i++) {
            array[i] = array[i]*2;
        }

    }
}

img

编辑

2. 求数组的平均值

实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).
public class Main{
    public static double avg(int[] array) {
       int sum = 0;
       for (int i : array) {
           sum = sum + i;
      }
       return sum * 1.0 / array.length;
    }
public static void main(String[] args) {
       int[] arr1 = {1, 2, 5, 6, 8, 9, 11};
       System.out.println(avg(arr1));
  }
}

img

编辑

3. 奇数位于偶数之前

调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。

如数组:[1,2,3,4,5,6]

调整后可能是:[1, 5, 3, 4, 2, 6]

public static void func(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;
    }
}

img

编辑

4. 二分/折半查找

/**
 * 实现二分查找
 * 前提:数组需要排序为有序数组
 * 效率较高
 * 可使用Arrays工具类
 * @param array
 * @param key
 * @return
 */
public static int binSearch(int[] array,int key){
    int mid = 0;
    int left = 0;
    int right = array.length-1;
    while (left<=right){
        mid =(left +right)>>>1;
        if(key>array[mid]){
            left = mid+1;
        }else{
            if(key<array[mid]){
                right = mid -1;
            }else {
                return mid;
            }
        }
    }
        return -1;
}
public static void main(String[] args) {
    int[] arr2 = {1, 2, 5, 6, 8, 9, 11};
     Arrays.sort(arr2);//默认升序,底层快排
    System.out.println(Arrays.binarySearch(arr2, 9));
    //使用Arrays工具类
    System.out.println(binSearch(arr2, 9));
}

img

5. 两数之和

class Solution{
  public static int[] func3(int[] array, int target) {
    int[] ret = new int[2];
    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array.length; j++) {
            if (array[i] + array[j] == target&&i!=j) {
                ret[0] = i;
                ret[1] = j;

            }
        }
    }
    return ret;
   }
}

6. 只出现一次的数字

class Solution{
  public static int  fun(int[] array) {
    int ret = 0;
    for (int i = 0; i < array.length; i++) {
          ret = ret ^array[i];
    }
    return ret;
  }
}

相关文章
|
6天前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
|
14天前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
38 9
|
12天前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
14 3
|
17天前
|
存储 算法 Java
Java一分钟之-数组的创建与遍历
数组作为Java中存储和操作一组相同类型数据的基本结构,其创建和遍历是编程基础中的基础。通过不同的创建方式,可以根据实际需求灵活地初始化数组。而选择合适的遍历方法,则可以提高代码的可读性和效率。掌握这些基本技能,对于深入学习Java乃至其他编程语言的数据结构和算法都是至关重要的。
19 6
|
13天前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
19 1
|
14天前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
12 1
|
25天前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
|
6天前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
24 0
|
17天前
|
存储 机器学习/深度学习 Java
【Java】数组详解
【Java】数组详解
23 0
|
1月前
|
存储 Java
java数据结构,线性表顺序存储(数组)的实现
文章介绍了Java中线性表顺序存储(数组)的实现。线性表是数据结构的一种,它使用数组来实现。文章详细描述了线性表的基本操作,如增加、查找、删除、修改元素,以及其他操作如遍历、清空、求长度等。同时,提供了完整的Java代码实现,包括MyList接口和MyLinearList实现类。通过main函数的测试代码,展示了如何使用这些方法操作线性表。