Продукт Max этих трех чисел для данного массива размера N

Я должен записать программу для нахождения продукта Max трех чисел для данного массива размера N. Есть ли какой-либо эффективный алгоритм для этого? Я просто должен знать шаги алгоритма. Не алгоритмов, что я думал работы для всех тестовых сценариев. Спасибо! к вашему сведению Массив может содержать +ve,-ve, или нулевые элементы),

9
задан BlueRaja - Danny Pflughoeft 2 February 2010 в 20:42
поделиться

2 ответа

Учитывая массив списка = (N1, N2, N3 ...). Вы можете сделать это в 3 проходах.

Let a1 = max (|n_i|) 
Let a2 = max (|n_i|) where n_i != a1

Теперь A1 * A2 является положительным, отрицательным или нулевым. Если ноль, то есть много решений; Выберите любой N_I от остальных чисел. Если A1 * A2> 0, выберите самый большой положительный номер, в противном случае наименьшее отрицательное число. Более кратко, вы можете просто сделать один пройти через остальную часть списка:

Let max_product = max (a1*a2*n_i) where n_i != a1 or a2
0
ответ дан 4 December 2019 в 06:49
поделиться

Сначала добавить

filterContext.HttpContext.Response.Clear();

и это в конце:

filterContext.HttpContext.Response.End();

Надеюсь, это поможет.

-121--2663128-

Я бы пошел с boost:: scoped _ ptr здесь:

class A: boost::noncopyable
{
    typedef boost::scoped_ptr<B> b_ptr;
    b_ptr pb_;

public:

    A() : pb_() {}

    void calledVeryOften( /*…*/ )
    {
        pb_.reset( new B( params )); // old instance deallocated
        // safely use *pb_ as reference to instance of B
    }
};

Нет необходимости в ручном деструкторе, A не копируется, как это должно быть в вашем оригинальном коде, не утечка памяти при копировании/назначении.

Я бы предложил переосмыслить дизайн, хотя если вам нужно очень часто перераспределять какой-то внутренний государственный объект. Ознакомьтесь с параметрами Flyweight и State узоров.

-121--2666428-

Найдите три наибольших числа в массиве (n1, n2, n3) и два наименьших числа (m1, m2).

Ответ: n1 x n2 x n3 или n1 x m1 x m2

33
ответ дан 4 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: