LeetCode1389——按既定顺序创建目标数组

LeetCode1389

LeetCode1389——按既定顺序创建目标数组_第1张图片

思路:先将元素存放在集合中,集合中的add(index,value)方法可以在指定的位置插入元素。
再创建新的数组,将集合中的元素存入数组,直接用数组的话元素移动不好操作。

LeetCode1389——按既定顺序创建目标数组_第2张图片

public class Demo01 {
    public static void main(String[] args) {
        int[] nums = {0,1,2,3,4};
        int[] index = {0,1,2,2,1};
        int[] targetArray = createTargetArray(nums,index);
        printArray(targetArray);
    }
    public static int[] createTargetArray(int[] nums, int[] index){
    
        ArrayList<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < nums.length; i++) {
            list.add(index[i],nums[i]);
        }
        int[] arr = new int[nums.length];
        for (int i = 0; i < nums.length; i++) {
            arr[i] = list.get(i);
        }
        return arr;
    }

    public static void printArray(int[] arr){
        //打印数组
        for (int i = 0; i < arr.length; i++) {
            if (i==0){
                if(arr.length==1){
                    System.out.println("["+arr[0]+"]");
                }else {
                    System.out.print("["+arr[i]);
                }
            }else if(i==arr.length-1){
                System.out.println(","+arr[i]+"]");
            }else {
                System.out.print(","+arr[i]);
            }
        }
    }

}

LeetCode1389——按既定顺序创建目标数组_第3张图片

你可能感兴趣的:(LeetCode,java,算法,开发语言)