数组训练集合

1.1、查找某个整数
定义一个长度为 10 的整型数组 nums ,循环输入 10 个整数。 然后将输
入一个整数,查找此整数,找到输出下标, 没找到给出提示。
package text;

import java.util.Scanner;

public class text {

public static void main(String[] args) {
	System.out.println("请输入存入值的长度");
	Scanner input=new Scanner(System.in);
	 int length=input.nextInt();
	int[] nums=new int[length];
	for(int i=0;i<length;i++) {
		System.out.println("请输入你要存入的值");
		int save;
		 save=input.nextInt();
		nums[i]=save;
	}
	System.out.println("请输入值你要查找的值");
	int check;
		check=input.nextInt();
	for(int i=0;i<length;i++) {
		if(nums[i]==check) {
			System.out.println("你要查找的值是第"+(i+1)+"个");
		}
	}
}

}
2、找出数组的最值
定义一个长度为 10 的整型数组 nums ,循环输入 10 个整数。输出数组
的最大值、最小值。.
package text;

import java.util.Scanner;

public class Demo1 {

public static void main(String[] args) {
	int max=0,min=0;
	System.out.println("请输入存入值的长度");
	Scanner input=new Scanner(System.in);
	 int length=input.nextInt();
	int[] nums=new int[length];
	for(int i=0;i<length;i++) {
		System.out.println("请输入你要存入的值");
		int save;
		 save=input.nextInt();
		nums[i]=save;
	}
	max=nums[0];
	for	(int i=1;i<length;i++) {
		if(max<nums[i]) {
			max=nums[i];
		}
	}
	System.out.println("你输入的最大值为"+max);
	min=nums[0];
	for	(int i=1;i<length;i++) {
		if(min>nums[i]) {
			min=nums[i];
		}
	}
	System.out.println("你输入的最小值为"+min);
}

}
3、两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为
目标值的那两个整数,并输出他们的数组下标
假设每种输入只会对应一个答案,不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以输出 0,1
package text;

import java.util.Scanner;

public class Demo2 {

public static void main(String[] args) {
	System.out.println("请输入存入值的长度");
	Scanner input=new Scanner(System.in);
	 int length=input.nextInt();
	int[] nums=new int[length];
	for(int i=0;i<length;i++) {
		System.out.println("请输入你要存入的值");
		int save;
		 save=input.nextInt();
		nums[i]=save;
	}
	System.out.println("请输入你要求的值");
  int target=input.nextInt();
  for(int i=0;i<length;i++) {
	  for(int j=0;j<length/2+1;j++) {
		  if(nums[i]+nums[j]==target) {
			  System.out.println(i+","+j);
			 
		  }
	  }
  }
}

}
4、排序并查找
对数组{1,3,9,5,6,7,15,4,8}进行排序,然后使用二分查找 6 并
输出排序后的下标。
package text;

import java.util.Scanner;

public class Demo3 {

public static void main(String[] args) {
	int team;
	System.out.println("请输入存入值的长度");
	Scanner input=new Scanner(System.in);
	 int length=input.nextInt();
	int[] nums=new int[length];
	for(int i=0;i<length;i++) {
		System.out.println("请输入你要存入的值");
		int save;
		 save=input.nextInt();
		nums[i]=save;
	}
	team=nums[0];
	for(int i=0;i<nums.length-1;i++) {
		for(int j=0;j<nums.length-1-i;j++) {
			if(nums[j]>nums[j+1]) {
				team=nums[j];
				nums[j]=nums[j+1];
				nums[j+1]=team;
			}
		}
	}
	System.out.print("小到大的排序后为:");
	for(int i=0;i<nums.length;i++)
	System.out.print(nums[i]+",");
	System.out.print("请选择你要找的数字:");
	int chose=input.nextInt();
	int min=nums[0],max=nums[nums.length-1],centure=(nums.length-1)/2;
	while(true) {
		if(nums[centure]>chose) {
			max=centure-1;
		}
		else if(nums[centure]<chose)
			min=centure+1;
		else if(min>max){
		System.out.print("你输入的数字不存在:");
		break;
		}
	
			centure=(nums.length-1)/2;
		if(nums[centure]==chose)
			break;
	}
	System.out.print("你选择的数为第:"+(centure+1)+"个");
}

}
5、移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保
持非零元素的相对顺序。
package text;

import java.util.Scanner;

public class Demo4 {

public static void main(String[] args) {
	int team;
	System.out.println("请输入存入值的长度");
	Scanner input=new Scanner(System.in);
	 int length=input.nextInt();
	int[] nums=new int[length];
	for(int i=0;i<length;i++) {
		System.out.println("请输入你要存入的值");
		int save;
		 save=input.nextInt();
		nums[i]=save;
	}
	team=nums[0];
	for(int i=0;i<nums.length-1;i++) {
		for(int j=0;j<nums.length-1-i;j++) {
			if(nums[j]==0) {
				team=nums[j];
				nums[j]=nums[j+1];
				nums[j+1]=team;
			}
		}
	}
	for(int i=0;i<nums.length;i++)
	System.out.println(nums[i]);
}

}

猜你喜欢

转载自blog.csdn.net/chh1ctrl/article/details/113180621