Similar Problems

Similar Problems not available

Find The Winner Of An Array Game - Leetcode Solution


LeetCode:  Find The Winner Of An Array Game Leetcode Solution

Difficulty: Medium

Topics: array simulation  

Problem statement

You are given an integer array nums, where the elements can be rearranged. You need to find the maximum possible score of the array.

The score of an array is defined as follows:

The score is the number of elements on one side of the array that are strictly larger than the other side of the array.

Return the maximum possible score of the array.


To solve this problem, we can sort the array in decreasing order and initialize two pointers, left and right, to the beginning and end of the array respectively. We then loop through the array and move the pointer towards the center, increasing the score for each comparison between elements. We keep track of the maximum score seen so far and return it at the end.

Here is the implementation of the above-mentioned idea:

class Solution:
    def maxScore(self, nums: List[int]) -> int:
        nums.sort(reverse=True) # Sort the array in descending order
        left, right = 0, len(nums) - 1 # Initialize two pointers
        max_score = 0 # Initialize the maximum score

        while left < right: # Loop through the array
            if nums[left] > nums[right]: # Left pointer is larger than right pointer
                max_score += 1
                left += 1
            else: # Right pointer is larger than left pointer
                max_score += 1
                right -= 1

        return max_score

The time complexity of this solution is O(n log n) due to the sorting operation, and the space complexity is O(1) as we are using constant amount of extra space.

Find The Winner Of An Array Game Solution Code