कठिन 0 हल किए गए 0% स्वीकृति

Count Inversions

Count the out-of-order pairs in a list.

समस्या

An inversion is a pair of positions i < j with numbers[i] > numbers[j]. Count all inversions. Lists can be long, so a merge-sort based O(n log n) count is needed.

Implement count_inversions(numbers).

Input

numbers: The list of integers.

Output

Return the number of inversions.

सीमाएँ

0 ≤ length ≤ 200,000

उदाहरण

उदाहरण 1
इनपुट:
numbers = [2, 4, 1, 3, 5]

अपेक्षित आउटपुट:
expected = 3
इनपुट:
std::vector<long long> numbers = {2, 4, 1, 3, 5};

अपेक्षित आउटपुट:
long long expected = 3;
इनपुट:
long[] numbers = new long[] {2, 4, 1, 3, 5};

अपेक्षित आउटपुट:
long expected = 3;

व्याख्या

Out-of-order pairs: (2,1), (4,1), (4,3): 3 inversions.

उदाहरण 2
इनपुट:
numbers = [1, 2, 3]

अपेक्षित आउटपुट:
expected = 0
इनपुट:
std::vector<long long> numbers = {1, 2, 3};

अपेक्षित आउटपुट:
long long expected = 0;
इनपुट:
long[] numbers = new long[] {1, 2, 3};

अपेक्षित आउटपुट:
long expected = 0;

व्याख्या

Already sorted: 0 inversions.

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।