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

Найти наибольший подмассив заданного массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нахождение суммы элементов массива, найти ошибку в коде http://www.cyberforum.ru/cpp-beginners/thread1097243.html
#include <iostream> #include <time.h> using namespace std; void fm(int a, int count){ for (int i=0; i<count; i++) a=rand()%100; } void print(int a,int count){ for (int i=0; i<count; i++)
C++ Вывести имя и количество букв в фамилии. Вывести самое длинное слово Помогите сделать задачку: Вывести имя и количество букв в фамилии.Вывести самое длинное слово.На C++ http://www.cyberforum.ru/cpp-beginners/thread1097241.html
Добавление элемента в список с проверкой уникальности C++
Всем привет! И сразу же к сути - не могу разобраться с добавлением элемента в список, но так что бы он не повторялся и был на своему мести, например мы добавили 7, в список 1 3 5 6 9, результат 1 3 5 6 7 9! Вот код программы: //--------------------------------------------------------------------------- #include <clx.h> #include <iostream.h> #include <stdio.h> #include <conio.h> #include...
C++ Ссылка на двумерный массив
Здравствуйте. Объясните досконально это выражение: int (&ref1);
C++ Логарифмы и не объявленные идентификаторы - найти ошибку в коде http://www.cyberforum.ru/cpp-beginners/thread1097219.html
#include <iostream> #include <conio.h> #include <math.h> void main() { float x,y; // объявление переменных
C++ Установка wxWidgets3.0 в Code Blocks Привет, помогите пожалуйста установить wxWidgets3.0 в Code Blocks, а то сил уже никаких нету( как его туда запихать ? подробнее

Показать сообщение отдельно
Марина4444
Сообщений: n/a

Найти наибольший подмассив заданного массива - C++

15.02.2014, 16:51. Просмотров 394. Ответов 1
Метки (Все метки)

Здравствуйте. Мне попалась следующая задачка:
Имеется массив чисел. В нём могут находиться как отрицательные, так и положительные элементы. Его длина - n.

Необходимо найти наибольший подмассив этого массива. То есть, последовательность чисел с наибольшей суммой. И вывести номера крайних элементов.

Например:
Массив содержит: -1, 2, 6, 7, -5, 12, -1, -11, -5, 1.
Наибольшим подмассивом будет являться последовательность от второго элемента до шестого элемента.
2 + 6 + 7 + (-5) +12 = 22, где "2" - второй элемент, а "12" - шестой.

Я решила данную задачу следующим образом:

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
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
void main()
  {
  int L, R, Lmax, Rmax, n=10, i, sum=0, maxsum=0;
  int a[10] = { -1, 2, 6, 7, -5, 12, -1, -11, -5, 1 };
  for(L=0; L<n; L++)
    for(R=L; R<n; R++)
      {
      for(i=L; i<R; i++)
        sum = sum + a[i];
      if(sum > maxsum)
        {
        maxsum = sum;
        Lmax = L;
        Rmax = R;
        }
      sum = 0;
      }
  cout << maxsum << " " << Lmax+1 << " " << Rmax;
  getch();
  return;
  }
А какие ещё есть интересные алгоритмы её решения?
Спасибо ^^
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru