123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package com.loveCoding.j20250607_method;
- import java.util.Arrays;
- /**
- * @author WanJl
- * @version 1.0
- * @title Demo09
- * @description
- * @create 2025/6/7
- */
- public class Demo09 {
- /**
- * 1、实现将arr1和arr2数组合并为一个新的数组并返回,先数组1后数组2
- * 1,2,3,4,5 5,4,3,2,1
- * 1,2,3,4,5,5,4,3,2,1
- *
- * @param arr1
- * @param arr2
- * @return
- */
- public static int[] toOneArray(int[] arr1, int[] arr2) {
- if (arr1.length == 0 || arr1 == null) { //如果前一个数组为空,则直接返回后一个数组
- return arr2;
- }
- if (arr2.length == 0 || arr2 == null) { //如果后一个数组为空,则直接返回前一个数组
- return arr1;
- }
- int[] tempArray = new int[arr1.length + arr2.length];
- for (int i = 0; i < tempArray.length; i++) {
- if (i < arr1.length) {
- tempArray[i] = arr1[i];
- } else {
- tempArray[i] = arr2[i - arr1.length];
- }
- }
- return tempArray;
- }
- /*
- 2、实现将arr1和arr2数组合并为一个新的数组并返回,
- 起始元素为数组1的元素,然后是数组2的第1个元素....以此类推
- 1,2,3,4,5 5,4,3,2,1
- 1,5,2,4,3,3,4,2,5,1
- */
- public static int[] toOneArray2(int[] arr1, int[] arr2) {
- //如果前一个数组为空,则直接返回后一个数组
- if (arr1.length == 0 || arr1 == null) {
- return arr2;
- }
- //如果后一个数组为空,则直接返回前一个数组
- if (arr2.length == 0 || arr2 == null) {
- return arr1;
- }
- //新数组长度是两个数组的长度和
- int[] tempArray = new int[arr1.length + arr2.length];
- //判断两个数组哪个长度更短
- int minLength= arr1.length> arr2.length?arr2.length:arr1.length;
- //以长度短的进行循环
- for (int i = 0; i < minLength; i++) {
- tempArray[i*2]=arr1[i]; //先赋值数组arr1 0 2 4 6 8 10 .....
- tempArray[(i*2)+1]=arr2[i]; //再赋值数组arr2 1 3 5 7 9 11.....
- }
- //再开启一个循环,把数组长的剩余的元素依次放到新数组后面
- for (int i = minLength*2; i <tempArray.length ; i++) {
- tempArray[i]=arr1.length< arr2.length?arr2[i-minLength]:arr1[i-minLength];
- }
- return tempArray;
- }
- /*
- 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出
- 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
- 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
- 你可以按任意顺序返回答案。
- */
- public int[] twoSum(int[] nums, int target) {
- int[] arr=new int[2];
- for (int i = 0; i < nums.length; i++) {
- for (int j = i+1; j < nums.length; j++) {
- if (nums[i]!=nums[j]&&nums[i]+nums[j]==target){
- arr[0]=i;
- arr[1]=j;
- return arr;
- }
- }
- }
- return arr;
- }
- public static void main(String[] args) {
- int[] arr1 = {1, 2, 3};
- int[] arr2 = {10, 20, 30, 40, 50};
- int[] array = toOneArray2(arr1, arr2);
- System.out.println(Arrays.toString(array));
- }
- }
|