Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2011, 12:44   #1
artem611
Пользователь
 
Регистрация: 21.09.2010
Сообщений: 40
По умолчанию Программа проходит не все тесты

Вообщем есть задача:
Задан массив из n чисел (a1, a2,..., an). Ваша задача — найти все числа, которые встречаются в массиве больше одного раза.

Обратите внимание, что каждое число, удовлетворяющее условию, следует выводить ровно один раз.
Я написал программу, но она проходит не все тесты, а посмотреть на каких тестах заваливаюсь нельзя. Может Вы сможете увидеть на чем валюсь?

Код:
import java.util.Scanner;

/**

public class Solution_2031 {
    public static void qSort(int[] a, int low, int high) {
        int i = low;
        int j = high;
        int x = a[low + (high - low) / 2];
        do {
            while (a[i] < x) {
                ++i;
            }
            while (x < a[j]) {
                --j;
            }
            if (i <= j) {
                int t = a[i];
                a[i] = a[j];
                a[j] = t;
                ++i;
                --j;
            }
        } while (i <= j);
        if (low < j) {
            qSort(a, low, j);
        }
        if (i < high) {
            qSort(a, i, high);
        }
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int fl = 0;
        int k = 0;
        int[] a = new int[n];
        int[] b = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = scan.nextInt();
        }

        for (int i = 0; i < n; i++) {
            for (int t = 0; t < n; t++) {
                if (a[i] == b[t]) {
                    i++;
                    break;
                }
            }
            for (int j = i + 1; j < n; j++) {
                if (a[i] == a[j]) {
                    b[k] = a[i];
                    k++;
                    fl++;
                    break;
                }
            }
        }
        if (fl == 0) {
            System.out.println("0");
        } else {
            System.out.println(fl);
            qSort(b, 0, fl - 1);
            for (int i = 0; i < fl; i++) {
                System.out.print(b[i] + " ");
            }
        }
    }
}
ЗЫ: знаю,чт ов яве есть встроенный метод sort, которым можно отсортировать массив. Как его надо применять? Если написать a.sort(), пишет ошибку
artem611 вне форума Ответить с цитированием
Старый 30.09.2011, 06:18   #2
AnKor94
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 54
По умолчанию

Написал свою реализацию. Правда в бессонную ночь пришла только идея со сложностью алгоритма N(O^3) что ужасно.. Но работает

Код:
import java.util.Scanner;
public class abc
{
  public static void main(String[] args) 
    {
	Scanner scan = new Scanner(System.in);
	int k,m=0,n,a[],b[];
	boolean ch;
	n = scan.nextInt();
	a = new int[n];	b = new int[n];
	for (int i=0; i<n; i++)
	a[i] = scan.nextInt();
	for (int i=0; i<n; i++) {
	   k=0;
       for (int j=0; j<n; j++)
	   if (a[i]==a[j]) k++;
	   if (k>1) {
	      ch=false;
	      for (int y=0; y<m; y++)
	      if (b[y]==a[i]) ch=true;
	      if (ch==false) {b[m]=a[i];m++;}
	      }
		}
	for (int i=0; i<m; i++)
	System.out.print(b[i]+" ");
	}
}
141.116.168.135 : damiu2d449028.dami.army.pentagon.mi l (.MIL | US Military)

Последний раз редактировалось AnKor94; 30.09.2011 в 06:30. Причина: очепятка
AnKor94 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тесты. Все в одном ferrum88 Помощь студентам 3 02.11.2010 21:50
Не проходит компановка Artemprodigy Visual C++ 1 27.10.2010 23:53
Не проходит валидность Ururu HTML и CSS 2 05.04.2009 15:54