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.

Open in Editor