Здравейте, имам проблем с една задача:
Write a program that reads two int arrays of size N from the console and compares them element by element. Print Equal if the two arrays are the same and Not equal if they are not
Първото ми го изкарва правилно, второто не. Ако е възможно дали ще може да се даде решение?
Ето ми го кода
Scanner scanner = new Scanner(System.in);
int n = Integer.parseInt(scanner.nextLine());
int[] arr1 = new int[] {};
int[] arr2 = new int[] {};
А защо трябва да ги сортира първо, така нали ще им размести елементите, какъв е смисълът да ги сравнява след сорт? Не трябва ли да се сравнят масивите както са подадени в input-a? Или на мен нещо ми убягва от условието?
Тези долу трябва да изкарват резултат “equal” ли?
int arr1[] = { 1, 3, 2 };
int arr2[] = { 1, 2, 3 };
Ама за да са equal arrays, трябва и подредбата на елементите да съвпада, виж: “Two arrays are considered equal if both arrays contain the same number of elements, and all corresponding pairs of elements in the two arrays are equal. In other words, two arrays are equal if they contain the same elements in the same order. Also, two array references are considered equal if both are [null]”(Java.util.Arrays.equals() in Java with Examples - GeeksforGeeks).
Както и да е, де, ако горното решение минава в judge-a, явно аз не им разбирам условието на задачата:) (нямам линк към самата задача).
Здравей, от това което виждам използваш “Arrays.equals”, алгориъма отзад ще направи следното:
int[] arr1 = new int[] { 1, 2, 3, 4}
int[] arr2 = new int[] { 1, 2, 3, 4}
int[] arr3 = new int[] { 1, 2, 4, 3}
Ако използвае Arrays.equals за arr1 и arr2, ще вътрне True, за arr1/arr2 сравнен с arr3 ще върне False. Или с други думи казано: Two arrays are considered equal if both arrays contain the same number of elements, and all corresponding pairs of elements in the two arrays are equal. In other words, two arrays are equal if they contain the same elements in the same order.
Трябва да сортираш и тогава да ги сравниш с Arrays.equals.
Поне според мен затова ти гърми.
Може да решиш задачата, като провериш дължината дали съвпада, след това да направиш 1 фор циъкл до дължината на масива и да сравняваш елемент по елемент, ако удариш кейс в който са различни принтираш “Not equal” и спираш програмата, в другия случай принтираш “Equal” или каквото се иска по условие.