1.求二维数组中最大元素的值
【问题描述】定义一个4行5列的二维数组并输入元素的值,求出二维数组中最大元素的值,并输出。
【输入形式】
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
54 67 12 89 54【输出形式】
the max value is:89
————————————————————————————————————————
问题思路分析 :
本题不需要创建二维数组
接受四行数据,分别求出四行数据各自的最大值,并将各自的最大值进行比较选择出最大的那个
代码实现如下 :
import java.util.Scanner;
public class demo1 {
public static void main(String[] args) {
// 接受数据
Scanner nc = new Scanner(System.in);
// 处理数据
int[] Max = new int[4]; // 存储每行的最大元素值的数组
for (int j = 0; j < 4; j++) {
int[] nums = fun(nc.nextLine()); // 处理用户输入的一行数据
int max = 0; // 当前行的最大元素值
// 遍历当前行的元素,找出最大值
for (int i = 0; i < nums.length; i++) {
if (max < nums[i]) {
max = nums[i];
Max[j] = max; // 将最大值存储到Max数组中
}
}
}
int num = Max[0]; // 最大值初始化为Max数组的第一个元素
// 遍历Max数组,找出其中的最大值
for (int i = 0; i < Max.length; i++) {
if (Max[i] > num) {
num = Max[i];
}
}
System.out.printf("The max value is: %d", num);
}
// 将输入字符串解析为整型数组
static int[] fun(String nums) {
String[] arr1 = nums.split(" ");
int[] arr2 = new int[arr1.length];
for (int i = 0; i < arr1.length; i++) {
arr2[i] = Integer.parseInt(arr1[i]);
}
return arr2;
}
}
2.求差集
【问题描述】
两个集合的差集定义如下:
集合A、B的差集,由所有属于A但不属于B的元素构成。
输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
【输入形式】从标准输入接收集合中的自然数元素,以空格分隔。
其中,每个集合都不输入重复的元素。【输出形式】
输出差运算后集合中的元素,以空格分隔。输出元素按从小到大排序
如果A、B的差集为空集,则不输出任何数值。【样例输入】
2 8 3 4 6 1 4 9【样例输出】
2 3 8————————————————————————————————————————
问题思路分析:
这个题目要求我们计算两个集合的差集。给定两个集合A和B,每个集合中的元素都是自然数,我们需要找出属于集合A但不属于集合B的元素,并按从小到大的顺序输出。
首先,我们使用ArrayList来表示集合A和集合B,以便动态添加和删除元素。然后,我们从标准输入读取集合A和集合B的元素,每个元素以空格分隔。
接下来,我们将输入的元素转换为整型数组,并对数组进行排序,以便后续处理。我们使用方法来完成这个转换操作,该方法接收一个字符串数组作为参数,将字符串数组中的元素转convertToIntArray方法换为整型,并返回对应的整型数组。
然后,我们将排序后的数组添加到ArrayList A和ArrayList B中。接下来,我们使用
removeAll
方法从集合A中移除属于集合B的元素,这样就得到了集合A和集合B的差集。最后,我们检查集合A的大小。如果集合A为空集,则不输出任何元素。否则,我们按照从小到大的顺序输出集合A中的元素,每个元素之间以空格分隔。
代码实现:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class SetDifference {
public static void main(String[] args) {
// 创建ArrayList来存储集合A和集合B
ArrayList<Integer> A = new ArrayList<>();
ArrayList<Integer> B = new ArrayList<>();
// 接收数据
Scanner sc = new Scanner(System.in);
// 将输入的字符串按空格分割为字符串数组,并转换为整型数组
int[] arrA = convertToIntArray(sc.nextLine().split(" "));
int[] arrB = convertToIntArray(sc.nextLine().split(" "));
// 对数组进行排序
Arrays.sort(arrA);
Arrays.sort(arrB);
// 将排序后的数组添加到ArrayList A和ArrayList B中
for (int i = 0; i < arrA.length; i++) {
A.add(arrA[i]);
}
for (int i = 0; i < arrB.length; i++) {
B.add(arrB[i]);
}
// 计算集合A和集合B的差集
A.removeAll(B);
// 输出差集元素,按从小到大的顺序,每个元素之间以空格分隔
if (A.size() == 0) {
// 差集为空集,不输出任何元素
} else {
for (int i = 0; i < A.size(); i++) {
System.out.print(A.get(i) + " ");
}
}
}
// 将字符串数组转换为整型数组的方法
static int[] convertToIntArray(String[] arr) {
int[] nums = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
nums[i] = Integer.parseInt(arr[i]);
}
return nums;
}
}