Solving Leetcode Interviews in Seconds with AI: Sort the People
Introduction
In this blog post, we will explore how to solve the LeetCode problem "2418" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.
Problem Statement
You are given an array of strings names, and an array heights that consists of distinct positive integers. Both arrays are of length n. For each index i, names[i] and heights[i] denote the name and height of the ith person. Return names sorted in descending order by the people's heights. Example 1: Input: names = ["Mary","John","Emma"], heights = [180,165,170] Output: ["Mary","Emma","John"] Explanation: Mary is the tallest, followed by Emma and John. Example 2: Input: names = ["Alice","Bob","Bob"], heights = [155,185,150] Output: ["Bob","Alice","Bob"] Explanation: The first Bob is the tallest, followed by Alice and the second Bob. Constraints: n == names.length == heights.length 1 <= n <= 103 1 <= names[i].length <= 20 1 <= heights[i] <= 105 names[i] consists of lower and upper case English letters. All the values of heights are distinct.
Explanation
- Create a list of tuples where each tuple contains a height and the corresponding name.
- Sort the list of tuples in descending order based on the height.
- Extract the names from the sorted list of tuples.
- Runtime Complexity: O(n log n), Storage Complexity: O(n)
Code
def sort_by_height(names, heights):
"""
Sorts an array of names by the corresponding heights in descending order.
Args:
names: A list of strings representing the names of people.
heights: A list of integers representing the heights of people.
Returns:
A list of strings representing the names sorted by height in descending order.
"""
people = list(zip(heights, names))
people.sort(reverse=True)
sorted_names = [name for height, name in people]
return sorted_names