File tree Expand file tree Collapse file tree 1 file changed +25
-25
lines changed
src/main/java/g3401_3500/s3470_permutations_iv Expand file tree Collapse file tree 1 file changed +25
-25
lines changed Original file line number Diff line number Diff line change 55import java .util .ArrayList ;
66import java .util .List ;
77
8- class Solution {
8+ @ SuppressWarnings ("java:S6541" )
9+ public class Solution {
910 private static final long INF = 1_000_000_000_000_000_000L ;
1011
1112 private long helper (int a , int b ) {
@@ -54,30 +55,29 @@ public int[] permute(int n, long k) {
5455 int even = n / 2 ;
5556 int last = -1 ;
5657 for (int i = 1 ; i <= n ; i ++) {
57- if (used [i ]) {
58- continue ;
59- }
60- int odd2 = odd ;
61- int even2 = even ;
62- int cp = i & 1 ;
63- int next = (cp == 1 ? 0 : 1 );
64- if (cp == 1 ) {
65- odd2 --;
66- } else {
67- even2 --;
68- }
69- int r = n - 1 ;
70- long cnt = solve (odd2 , even2 , r , next );
71- if (k > cnt ) {
72- k -= cnt ;
73- } else {
74- ans .add (i );
75- used [i ] = true ;
76- odd = odd2 ;
77- even = even2 ;
78- last = cp ;
79- first = true ;
80- break ;
58+ if (!used [i ]) {
59+ int odd2 = odd ;
60+ int even2 = even ;
61+ int cp = i & 1 ;
62+ int next = (cp == 1 ? 0 : 1 );
63+ if (cp == 1 ) {
64+ odd2 --;
65+ } else {
66+ even2 --;
67+ }
68+ int r = n - 1 ;
69+ long cnt = solve (odd2 , even2 , r , next );
70+ if (k > cnt ) {
71+ k -= cnt ;
72+ } else {
73+ ans .add (i );
74+ used [i ] = true ;
75+ odd = odd2 ;
76+ even = even2 ;
77+ last = cp ;
78+ first = true ;
79+ break ;
80+ }
8181 }
8282 }
8383 if (!first ) {
You can’t perform that action at this time.
0 commit comments