2024/10/07 灵茶题单 滑动窗口
This commit is contained in:
parent
ed7d71e58d
commit
17c02133fe
|
@ -0,0 +1,57 @@
|
|||
package com.cool.ling_cha_mount.sliding_windows;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* Created with IntelliJ IDEA.
|
||||
*
|
||||
* @Author: Cool
|
||||
* @Date: 2024/10/07/20:48
|
||||
* @Description:
|
||||
*/
|
||||
public class Num1652 {
|
||||
public int[] decrypt(int[] code, int k) {
|
||||
int[] res = new int[code.length];
|
||||
if (k > 0) {
|
||||
int sum = 0;
|
||||
int right = 1;
|
||||
for (int i = 0; i < k; i++) {
|
||||
sum += code[right++];
|
||||
}
|
||||
for (int i = 0; i < code.length; i++) {
|
||||
if (right >= code.length) {
|
||||
right = 0;
|
||||
}
|
||||
res[i] = sum;
|
||||
sum += code[right++];
|
||||
if (i != code.length - 1) {
|
||||
sum -= code[i + 1];
|
||||
}
|
||||
}
|
||||
} else if (k < 0) {
|
||||
int right = code.length - 2;
|
||||
int sum = 0;
|
||||
k = -k;
|
||||
for (int i = code.length - 1; i > code.length - 1 - k; i--) {
|
||||
sum += code[right--];
|
||||
}
|
||||
for (int i = code.length - 1; i >= 0; i--) {
|
||||
if (right < 0) {
|
||||
right = code.length - 1;
|
||||
}
|
||||
res[i] = sum;
|
||||
sum += code[right--];
|
||||
if (i != 0) {
|
||||
sum -= code[i - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@Test
|
||||
public void test(){
|
||||
decrypt(new int[]{5,7,1,4},3);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue