Member 13958707 Ответов: 3

Как сравнить два универсальных списка, содержащих числа в C#?


Есть 2 списка, как список<инт&ГТ; которая 3 балла, такие как {5,6,10}, и списке другие списке и Л;int> У Б = {3,6,30}. Сравнение должно быть сделано для проверки следующим образом,
0-й индекс списка a > 0-й индекс списка b = возврат 1 для a
или 0-й индекс списка a = 0-й индекс списка b = retunr 0 значение, так как оно равно
или 0-й индекс списка a < 0-й индекс списка b = возврат 1 для b

сравнение должно быть сделано для каждого индекса как (a0,b0),(a1,b1) и (a2,b2).
и должен вернуть общее количество 1s в отдельный массив.

пример вывода для приведенного выше примера: {1,1}(здесь 0-й индекс соответствует сумме списка а, а 1-й индекс-сумме списка В.

Что я уже пробовал:

<pre>class Solution {

    // Complete the compareTriplets function below.
    static List<int> compareTriplets(List<int> a, List<int> b) {
           
           
    }

    static void Main(string[] args) {
        TextWriter textWriter = new StreamWriter(@System.Environment.GetEnvironmentVariable("OUTPUT_PATH"), true);

        List<int> a = Console.ReadLine().TrimEnd().Split(' ').ToList().Select(aTemp => Convert.ToInt32(aTemp)).ToList();

        List<int> b = Console.ReadLine().TrimEnd().Split(' ').ToList().Select(bTemp => Convert.ToInt32(bTemp)).ToList();

        List<int> result = compareTriplets(a, b);

        textWriter.WriteLine(String.Join(" ", result));

        textWriter.Flush();
        textWriter.Close();
    }
}

3 Ответов

Рейтинг:
7

Richard MacCutchan

Начните с двух переменных, чтобы подсчитать количество значений 1. Повторите два списка, используя индекс, и сравните значения. Если значение а больше, добавьте 1 к сумме а, если значение в больше, добавьте 1 к сумме В. Повторите для полного списка(ов).


Member 13958707

Поскольку длина 2 массивов одинакова, повторяется массив A. Эта работа. Спасибо!

Рейтинг:
1

Member 13958707

Решение

class Solution {

    
    static void Main(string[] args) {
    
        int[] a = Console.ReadLine().Split().Select(p => int.Parse(p)).ToArray();
        int[] b = Console.ReadLine().Split().Select(p => int.Parse(p)).ToArray();
        int A = 0;
        int B = 0;
        for (int i = 0; i < a.Length; i++)
            if (a[i] > b[i]) A++;
            else if (a[i] < b[i]) B++;
        Console.WriteLine(string.Format("{0} {1}", A, B));
        
    }
}


Рейтинг:
0

RickZeeland

Вот пример, который приближается к тому, что вы хотите: linq - сравнение общих списков в C# - переполнение стека[^]


Member 13958707

статический список и Л;int> У compareTriplets(список<инт&ГТ; а список<инт&ГТ; б) {


}
Сравнение должно быть сделано внутри этого метода. В основном методе возвращается объединенный список.