JavaRush/Java блог/Архив info.javarush/Кухня(); Задание N59
terranum
28 уровень

Кухня(); Задание N59

Статья из группы Архив info.javarush
участников
Кухня(); Задание N59 - 1 Правила [Одномерные массивы] 59. Даны две последовательности целых чисел а1, а2, ..., аn и b1, b2, ..., bm. Все члены последовательностей – различные числа. Найти, сколько членов первой последовательности совпадают с членами второй последовательности.
Комментарии (4)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
aiv
Уровень 27
26 сентября 2014, 20:03
Или так:

        public static int coincide(int[] a, int[] b) {
            int result = 0;
            int[] temp = new int[b.length];
            // Если исходный массив можно изменять, то следующую строку
            // можно убрать, заменив далее temp на b.
            System.arraycopy(b, 0, temp, 0, b.length);
            // Без сортировки не работает :-(
            Arrays.sort(temp);
            
            for (int i = 0; i < a.length; i++) {
                if (Arrays.binarySearch(temp, a[i]) >= 0)
                    result++;
            }

            return result;
        }
aiv
Уровень 27
26 сентября 2014, 19:43

    public static int coincide(int[] a, int[] b) {
        int result = 0;
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < b.length; j++) {
                if (a[i] == b[j]) {
                    result++;
                    break;
                }
            }
        }

        return result;
    }
Airon
Уровень 34
26 сентября 2014, 21:44
Ну если уже гулять — так гулять! Оптимизнуть немного, все форы в foreach, меньше индексов — должно быть быстрее. Хотя не в этом примере, здесь всего 1 раз и вызывается (вызов по индексу в каждом массиве).
aiv
Уровень 27
27 сентября 2014, 19:10
Ну да…