From 17c02133fe346cee8b22209b41714450896ec301 Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Mon, 7 Oct 2024 21:00:41 +0800 Subject: [PATCH] =?UTF-8?q?2024/10/07=20=E7=81=B5=E8=8C=B6=E9=A2=98?= =?UTF-8?q?=E5=8D=95=20=E6=BB=91=E5=8A=A8=E7=AA=97=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sliding_windows/Num1652.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/main/java/com/cool/ling_cha_mount/sliding_windows/Num1652.java diff --git a/src/main/java/com/cool/ling_cha_mount/sliding_windows/Num1652.java b/src/main/java/com/cool/ling_cha_mount/sliding_windows/Num1652.java new file mode 100644 index 0000000..41f0ec9 --- /dev/null +++ b/src/main/java/com/cool/ling_cha_mount/sliding_windows/Num1652.java @@ -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); + } +}