Find Top K Elements Practice Problem
This data science coding problem helps you practice Sorting & Searching, find top k elements, and implementation skills. Read the problem statement, write your solution, and strengthen your understanding of Sorting & Searching.
- Problem ID: 102
- Problem key: 102-find-top-k-elements
- URL: https://datacrack.app/solve/102-find-top-k-elements
- Difficulty: easy
- Topic: Sorting & Searching
- Module: Python Fundamentals
Problem Statement
# š§© Find Top K Elements
---
### šÆ Goal
Finding the top-K elements is a daily data science operation: top-K features by importance, top-K predictions by confidence, top-K customers by revenue. This problem teaches partial sorting using Python's `sorted()`.
---
### š Find Top K Elements
From a list of numbers, return the `k` largest values in **descending order**:
```
nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3], k = 3
ā [9, 6, 5]
```
---
### š» Task
Implement `top_k(nums, k)` using `sorted()` and slicing.
---
### š„ Input
- `nums`: list of numbers
- `k`: int ā how many top elements to return (k ⤠len(nums))
### š¤ Output
- A list of the `k` largest values, in **descending order**
---
### š§© Starter Code
```python
def top_k(nums, k):
"""
Return the k largest elements in descending order.
Args:
nums (list): Input numbers
k (int): Number of top elements to return
Returns:
list: k largest values in descending order
"""
# š§ TODO: Sort nums in descending order
# š§ TODO: Return the first k elements
pass
```
---
### š” Example
```python
top_k([3, 1, 4, 1, 5, 9, 2, 6, 5, 3], 3)
# Expected: [9, 6, 5]
```
---
### š Key Concepts
- `sorted(nums, reverse=True)` sorts descending
- `[:k]` slices the first k elements
- For very large lists, `heapq.nlargest(k, nums)` is more efficient (O(n log k) vs O(n log n))Starter Code
def top_k(nums, k):
"""
Return the k largest elements in descending order.
Args:
nums (list): Input numbers
k (int): Number of top elements to return
Returns:
list: k largest values in descending order
"""
# š§ TODO: Sort nums in descending order
# š§ TODO: Return the first k elements
pass