**Problem Statement:**
A permutation of an array of integers is an arrangement of its members into a sequence or linear order. Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.
**Hint / Expected Approach:**
Find rightmost ascent + swap + reverse suffix
**Edge Cases to Consider:**
- (1) Descending array (last permutation)
- (2) Single element
- (3) Two elements