MCPcopy Create free account
hub / github.com/Ainevsia/Leetcode-Rust / next_permutation

Method next_permutation

47. Permutations II/src/main.rs:21–38  ·  view source on GitHub ↗
(nums: &mut Vec<i32>)

Source from the content-addressed store, hash-verified

19 }
20
21 pub fn next_permutation(nums: &mut Vec<i32>) {
22 if nums.len() <= 1 { return }
23 let mut i = nums.len() - 2;
24 while let false = nums[i] < nums[i + 1] {
25 if i != 0 {
26 i -= 1
27 } else {
28 nums.reverse();
29 return
30 }
31 }
32 let mut j = nums.len() - 1;
33 while let false = nums[i] < nums[j] {
34 j -= 1;
35 }
36 nums.swap(i, j);
37 nums[i+1..].reverse()
38 }
39}
40
41#[cfg(test)]

Callers

nothing calls this directly

Calls 2

swapMethod · 0.80
reverseMethod · 0.45

Tested by

no test coverage detected