Форум программистов, компьютерный форум CyberForum.ru

Самая длинная последовательность не повторяющихся элементов в массиве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Цикл do while не могу понять, http://www.cyberforum.ru/cpp-beginners/thread673320.html
программу которая принимает число N и выводит на экран N звездочек, использовать цикл do while
C++ Хеширование: реализовать пользовательский поиск ключа Всем привет! Ребята очень нуждаюсь в вашей помощи. Есть хеш функция: #include <iostream> #include <time.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread673319.html
Угадайка от Страуструпа C++
Писал, писал, устал. В логике ошибок нет. Как алгоритм оптимизировать и спагетти свернуть? #include "std_lib_facilities.h" int main () { cout << " Загадайте целое число от 1 до 100 " << " На вопрос можно ответить y или n " << '\n', '\n'; cout << " Ваше число меньше или равно 50, y или n? " << '\n'; char choice, choice1, choice2, choice3, choice4, choice5, choice6, choice7,...
C++ Написать программу, которая вычисляет оптимальный вес девушки, сравнивает его с реальным
На с++ в консольном Нужно решить задачу на любой цикл(цикл с постусловием,цикл с пердусловием,цикл с параметром) Написать программу, которая вычисляет оптимальный вес девушки, сравнивает его с реальным и выдает рекомендации о необходимости поправиться или похудеть! Оптимальный вес вычисляется по формуле: Опт.вес=Рост(см)-10
C++ Как перевести String^ в char[255] http://www.cyberforum.ru/cpp-beginners/thread673256.html
Доброго времени суток. Нужно перевести String в char. Делаю следующее: String^ func=Convert::ToString(textBox1->Text); const int r=255; сhar func_ch; for(int i=0;i<func->Length;i++) { func_ch = func;
C++ резервирование памяти/освобождение памяти для трехмерного массива Необходимо создать трехмерный массив (A), в котором элементы вдоль направления Z выли бы выровнены по 16 байт. Есть две проблемы: 1. Как скрестить строку вроде float *Uz __attribute__ ((aligned(16))) = (float*)_mm_malloc(Nz * sizeof(float), 16); С кодом типа (то есть как корректно подставить выше написанную строчку вместо строки 8): подробнее

Показать сообщение отдельно
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.10.2012, 21:50     Самая длинная последовательность не повторяющихся элементов в массиве
точно, я ее изначально как int прописывал, хотя у меня все и так работало. вот в таком варианте
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<stdio.h>
#include<stdlib.h>
 
void MinMax(int *a, int n, int *min, int *max)
{
   int i;
   for(i = 0, *min = *max = a[i]; i < n; i++)
      if(a[i] < *min) *min = a[i];
      else if(a[i] > *max) *max = a[i];
 
}
 
void Len(int *a, int n, int *i0, int *len)
{
   int i, j, min, max, *count;
   MinMax(a, n, &min, &max);
   count = (int *)calloc(max - min + 1, sizeof(*count));
   j = max = i = *i0 = *len = 0;
   if (count == NULL)
      return;
   while(i < n)
   {
       for(; j < n && ++count[a[j] - min] < 2; j++)
          ;
       if (j - i > max)
       {
           max = j - i;
           *i0 = i;
           *len = max;
       }
       for(; i < n && --count[a[i] - min] == 0; i++)
          ;
       i++;
       j++;
   }
   free(count);
}
 
int main( )
{
    int a[] = {1, 2, 3, 4, 2,  1, 0, 2, 1, 1, 1, 2, 3, 4, 5, 6, 7};
    int i, i0, d, size;
    size = sizeof(a) / sizeof(*a);
    Len(a, size, &i0, &d);
    for(i = i0; i < i0 + d; i++)
       printf("%d ", a[i]);
    return 0;
}
 
Текущее время: 05:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru