吉道科技算法题

2019-10-14  本文已影响0人  7i昂

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

public int[] twoSum(int[] nums, int target) {
    for (int i = 0; i < nums.length; i++) {
        for (int j = i + 1; j < nums.length; j++) {
            if (nums[j] == target - nums[i]) {
                return new int[] { i, j };
            }
        }
    }
    return null;
}

数组移除目标值返回数组长度

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

    }

二维数组反转

public class Demo {
    public static void main(String[] args) {
        int[][] arr = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
        System.out.println("===============");
        // 分析:我们可以看出二维数组的翻转后的交换
        //遍历这个二维数组
        for (int i = 0; i < arr.length; i++) {
            // [0][1]和[1][0]换
            // [0][2]和[2][0]换
            // [1][2]和[2][1]换
            // 可以发现,j < i,不然就又交换回去了
            for (int j = 0; j < i; j++) {
                int a = arr[i][j];
                arr[i][j] = arr[j][i];
                arr[j][i] = a;
            }
        }
        for (int[] is : arr) {
            for (int i : is) {
                System.out.print(i + " ");
            }
            System.out.println();
        }
    }
}

上一篇 下一篇

猜你喜欢

热点阅读