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]);
}
}