Back to Practice Dashboard
Python BasicsEasy
Find Second Smallest Element in an Array
Learn how to solve the 'Find Second Smallest Element in an Array' problem. This detailed resource details brute force and optimized approaches.
Problem Statement
Easy
Write a function second_smallest(arr) that takes a list of integers arr and returns the second smallest distinct element. If no second smallest exists (all elements are the same or array has fewer than 2 distinct values), return -1.
Constraints
- •1 <= len(arr) <= 10^5
- •-10^9 <= arr[i] <= 10^9
Examples
Example 1
Input
arr = [3, 1, 4, 1, 5]
Output
3
Explanation
Sorted distinct values: [1, 3, 4, 5]. The second smallest is 3.
Example 2
Input
arr = [5, 5, 5]
Output
-1
Explanation
All elements are the same. No second smallest exists.
Example 3
Input
arr = [10, 20]
Output
20
Explanation
Two distinct values: 10, 20. Second smallest is 20.
Need a Hint?
Use simple arithmetic operators (like modulo `%`, division `//`), conditional checks, or loops to inspect number properties.
Edge Cases to Watch
- Empty list or null input variables
- Single item lists/arrays
- Extremely large input bounds causing integer or stack overflow
Ready to Solve?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.