diff --git a/solution/3300-3399/3379.Transformed Array/README.md b/solution/3300-3399/3379.Transformed Array/README.md index a25cc873e802f..c59b8ab64bd64 100644 --- a/solution/3300-3399/3379.Transformed Array/README.md +++ b/solution/3300-3399/3379.Transformed Array/README.md @@ -84,25 +84,72 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3300-3399/3379.Tr #### Python3 ```python - +class Solution: + def constructTransformedArray(self, nums: List[int]) -> List[int]: + ans = [] + n = len(nums) + for i, x in enumerate(nums): + ans.append(nums[(i + x + n) % n] if x else 0) + return ans ``` #### Java ```java - +class Solution { + public int[] constructTransformedArray(int[] nums) { + int n = nums.length; + int[] ans = new int[n]; + for (int i = 0; i < n; ++i) { + ans[i] = nums[i] != 0 ? nums[(i + nums[i] % n + n) % n] : 0; + } + return ans; + } +} ``` #### C++ ```cpp - +class Solution { +public: + vector constructTransformedArray(vector& nums) { + int n = nums.size(); + vector ans(n); + for (int i = 0; i < n; ++i) { + ans[i] = nums[i] ? nums[(i + nums[i] % n + n) % n] : 0; + } + return ans; + } +}; ``` #### Go ```go +func constructTransformedArray(nums []int) []int { + n := len(nums) + ans := make([]int, n) + for i, x := range nums { + if x != 0 { + ans[i] = nums[(i+x%n+n)%n] + } + } + return ans +} +``` +#### TypeScript + +```ts +function constructTransformedArray(nums: number[]): number[] { + const n = nums.length; + const ans: number[] = []; + for (let i = 0; i < n; ++i) { + ans.push(nums[i] ? nums[(i + (nums[i] % n) + n) % n] : 0); + } + return ans; +} ``` diff --git a/solution/3300-3399/3379.Transformed Array/README_EN.md b/solution/3300-3399/3379.Transformed Array/README_EN.md index eafeafbf2a8af..fda2bc4dd3e98 100644 --- a/solution/3300-3399/3379.Transformed Array/README_EN.md +++ b/solution/3300-3399/3379.Transformed Array/README_EN.md @@ -82,25 +82,72 @@ For each index i (where 0 <= i < nums.length), p #### Python3 ```python - +class Solution: + def constructTransformedArray(self, nums: List[int]) -> List[int]: + ans = [] + n = len(nums) + for i, x in enumerate(nums): + ans.append(nums[(i + x + n) % n] if x else 0) + return ans ``` #### Java ```java - +class Solution { + public int[] constructTransformedArray(int[] nums) { + int n = nums.length; + int[] ans = new int[n]; + for (int i = 0; i < n; ++i) { + ans[i] = nums[i] != 0 ? nums[(i + nums[i] % n + n) % n] : 0; + } + return ans; + } +} ``` #### C++ ```cpp - +class Solution { +public: + vector constructTransformedArray(vector& nums) { + int n = nums.size(); + vector ans(n); + for (int i = 0; i < n; ++i) { + ans[i] = nums[i] ? nums[(i + nums[i] % n + n) % n] : 0; + } + return ans; + } +}; ``` #### Go ```go +func constructTransformedArray(nums []int) []int { + n := len(nums) + ans := make([]int, n) + for i, x := range nums { + if x != 0 { + ans[i] = nums[(i+x%n+n)%n] + } + } + return ans +} +``` +#### TypeScript + +```ts +function constructTransformedArray(nums: number[]): number[] { + const n = nums.length; + const ans: number[] = []; + for (let i = 0; i < n; ++i) { + ans.push(nums[i] ? nums[(i + (nums[i] % n) + n) % n] : 0); + } + return ans; +} ``` diff --git a/solution/3300-3399/3379.Transformed Array/Solution.cpp b/solution/3300-3399/3379.Transformed Array/Solution.cpp new file mode 100644 index 0000000000000..a699dcd5b5588 --- /dev/null +++ b/solution/3300-3399/3379.Transformed Array/Solution.cpp @@ -0,0 +1,11 @@ +class Solution { +public: + vector constructTransformedArray(vector& nums) { + int n = nums.size(); + vector ans(n); + for (int i = 0; i < n; ++i) { + ans[i] = nums[i] ? nums[(i + nums[i] % n + n) % n] : 0; + } + return ans; + } +}; diff --git a/solution/3300-3399/3379.Transformed Array/Solution.go b/solution/3300-3399/3379.Transformed Array/Solution.go new file mode 100644 index 0000000000000..b8ca5a525f154 --- /dev/null +++ b/solution/3300-3399/3379.Transformed Array/Solution.go @@ -0,0 +1,10 @@ +func constructTransformedArray(nums []int) []int { + n := len(nums) + ans := make([]int, n) + for i, x := range nums { + if x != 0 { + ans[i] = nums[(i+x%n+n)%n] + } + } + return ans +} diff --git a/solution/3300-3399/3379.Transformed Array/Solution.java b/solution/3300-3399/3379.Transformed Array/Solution.java new file mode 100644 index 0000000000000..1410036219c52 --- /dev/null +++ b/solution/3300-3399/3379.Transformed Array/Solution.java @@ -0,0 +1,10 @@ +class Solution { + public int[] constructTransformedArray(int[] nums) { + int n = nums.length; + int[] ans = new int[n]; + for (int i = 0; i < n; ++i) { + ans[i] = nums[i] != 0 ? nums[(i + nums[i] % n + n) % n] : 0; + } + return ans; + } +} diff --git a/solution/3300-3399/3379.Transformed Array/Solution.py b/solution/3300-3399/3379.Transformed Array/Solution.py new file mode 100644 index 0000000000000..a6f2d9d26f989 --- /dev/null +++ b/solution/3300-3399/3379.Transformed Array/Solution.py @@ -0,0 +1,7 @@ +class Solution: + def constructTransformedArray(self, nums: List[int]) -> List[int]: + ans = [] + n = len(nums) + for i, x in enumerate(nums): + ans.append(nums[(i + x + n) % n] if x else 0) + return ans diff --git a/solution/3300-3399/3379.Transformed Array/Solution.ts b/solution/3300-3399/3379.Transformed Array/Solution.ts new file mode 100644 index 0000000000000..51a316d230b12 --- /dev/null +++ b/solution/3300-3399/3379.Transformed Array/Solution.ts @@ -0,0 +1,8 @@ +function constructTransformedArray(nums: number[]): number[] { + const n = nums.length; + const ans: number[] = []; + for (let i = 0; i < n; ++i) { + ans.push(nums[i] ? nums[(i + (nums[i] % n) + n) % n] : 0); + } + return ans; +}