Array (数组)

Basic:

(1) Element; (2) Index

import java.util.Arrays
int array[] = {1,2,3,4,5};

Display Array:

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

Operations:

(1) Insertion: 

Add an element at given index

(2) Deletion: 

Delete an element at given index

(3) Search: 

Search an element using given index or by value

(4) Update: 

Update an element at given index

Java Code Examples:

public class ArrayOperations {

    // Method to insert an element at a given index
    public static int[] insert(int[] array, int element, int index) {
        if (index < 0 || index > array.length) {
            System.out.println("Invalid index");
            return array;
        }

        int[] newArray = new int[array.length + 1];
        for (int i = 0, j = 0; i < newArray.length; i++) {
            if (i == index) {
                newArray[i] = element;
            } else {
                newArray[i] = array[j++];
            }
        }
        return newArray;
    }

    // Method to delete an element at a given index
    public static int[] delete(int[] array, int index) {
        if (index < 0 || index >= array.length) {
            System.out.println("Invalid index");
            return array;
        }

        int[] newArray = new int[array.length - 1];
        for (int i = 0, j = 0; i < array.length; i++) {
            if (i == index) {
                continue;
            }
            newArray[j++] = array[i];
        }
        return newArray;
    }

    // Method to search an element by its value
    public static int searchByValue(int[] array, int value) {
        for (int i = 0; i < array.length; i++) {
            if (array[i] == value) {
                return i; // return index of the found element
            }
        }
        return -1; // return -1 if element is not found
    }

    // Method to search an element by index
    public static int searchByIndex(int[] array, int index) {
        if (index < 0 || index >= array.length) {
            return -1; // return -1 if index is invalid
        }
        return array[index];
    }

    // Method to update an element at a given index
    public static void update(int[] array, int element, int index) {
        if (index < 0 || index >= array.length) {
            System.out.println("Invalid index");
            return;
        }
        array[index] = element;
    }

    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5};

        // Insertion
        array = insert(array, 6, 3);
        System.out.println("After insertion: " + java.util.Arrays.toString(array));

        // Deletion
        array = delete(array, 2);
        System.out.println("After deletion: " + java.util.Arrays.toString(array));

        // Search by Value
        int index = searchByValue(array, 4);
        System.out.println("Search by value (4): " + index);

        // Search by Index
        int value = searchByIndex(array, 2);
        System.out.println("Search by index (2): " + value);

        // Update
        update(array, 10, 1);
        System.out.println("After update: " + java.util.Arrays.toString(array));
    }
}

ArrayList: import java.util.Arrays

An 'ArrayList' in Java is a part of the Java Collections Framework and is present in the 'java.util' package. 

Example: 

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> fruits = new ArrayList<>();

        // Adding elements
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        // Accessing elements
        String firstFruit = fruits.get(0);
        System.out.println("First fruit: " + firstFruit);

        // Modifying elements
        fruits.set(1, "Blueberry");

        // Removing elements
        fruits.remove("Cherry");

        // Iterating through the ArrayList
        System.out.println("Fruits list:");
        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

LC 704:二分法查找

//Recursive Method
class ArrayDemo{
    int binarySearch(int array[], int target, int low, int high){
        if(high>=low){
            int mid = low + (high-low)/2;
            if(array[mid]==target) return mid;
            if(array[mid]>target) return binarySearch(array,target,low,mid-1);
            return binarySearch(array,target,mid+1,high);
        }
        return -1;
    }
    public static void main(String args[]){
        BinarySearch ob = new BinarySearch();
        int array[] = {3,4,5,6,7,8,9};
        int n = array.length;
        int target = 8;
        int result = ob.binarySearch(array,target,0,n-1);
        if(result == -1) System.out.println("Not found!");
        else System.out.println("Index is:" +result);
    }
}
//Iterative Method
class ArrayDemo{
    int binarySearch(int array[], int target, int low, int high){
        while(low<=high){
            int mid = low + (high-low)/2;
            if(array[mid]==target) return mid;
            if(array[mid]<target) low = mid+1;
            else high = mid-1;
        }
        return -1;

    }
    public static void main(String args[]){
        ArrayDemo ob = new ArrayDemo();
        int array[] = {1,2,3,4,5,6,7,8,9};
        int target = 8;
        int n = array.length;
        int result = ob.binarySearch(array,target,0,n-1);
        if(result == -1) System.out.println("Not found!");
        else System.out.println("Index is:" +result);
    }
}

LC27:移除元素

class Solution {
    public int removeElement(int[] nums, int val) {
        int j=0;
        for(int i=0;i<nums.length;i++){
            if(nums[i]!=val){
                nums[j]=nums[i];
                j++;
            }
        }
        return j;
    }
}

LC977.有序数组的平方 | Easy

Related Topics: Array, two pointers

//O(N*logN)time
//O(1)space
import java.util.Arrays;
class Solution {
    public int[] sortedSquares(int[] nums) {
        int n= nums.length;
        int res[] = new int[n];
        for(int i = 0;i<n;i++){
            res[i] = nums[i] * nums[i];
        }
        Arrays.sort(res);
        return res;
        }
}

LC209.长度最小的子数组

// O(n)time 
// O(1)space
public int minSubArrayLen(int s, int[] nums) {
    int len = nums.length;
    int res = len + 1;
    int pre = 0, cur = 0;
    int sum = 0;
    for(int i = 0; i < nums.length; i++){
        if(nums[i] >= s){
            return 1;
        }
        sum += nums[i];
        cur++;
        while(sum >= s){
            sum -= nums[pre];
            res = Math.min(cur - pre, res);
            pre++;
        }
    }
    return res == len + 1 ? 0 : res;
}

LC59.螺旋矩阵II 

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值