diff --git a/README.md b/README.md index c49e0cb..e7f0b9b 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ - [q43_字符串相乘](/src/数字操作/q43_字符串相乘) - [q172_阶乘后的零](/src/数字操作/q172_阶乘后的零) - [q258_各位相加](/src/数字操作/q258_各位相加) +- [q1920_基于排列构建数组](/src/数字操作/q1920_基于排列构建数组) ### 数组操作 diff --git a/README_EN.md b/README_EN.md index 4946777..e9e4f32 100644 --- a/README_EN.md +++ b/README_EN.md @@ -54,6 +54,7 @@ - [Question 43 : Multiply Strings](/src/数字操作/q43_字符串相乘) - [Question 172 : Factorial Trailing Zeroes](/src/数字操作/q172_阶乘后的零) - [Question 258 : Add Digits](/src/数字操作/q258_各位相加) +- [Question 1920 : Build Array from Permutation](/src/数字操作/q1920_基于排列构建数组) ### Array Operations diff --git a/src/数字操作/q1920_基于排列构建数组/Solution.java b/src/数字操作/q1920_基于排列构建数组/Solution.java new file mode 100644 index 0000000..9c2cc24 --- /dev/null +++ b/src/数字操作/q1920_基于排列构建数组/Solution.java @@ -0,0 +1,23 @@ +package 数字操作.q1920_基于排列构建数组; + +/** + * 注意观察题目,数组中数字为[0,999]闭区间 + */ +class Solution { + public int[] buildArray(int[] nums) { + int n = nums.length; + for (int i = 0; i < n; i++) { + nums[i] += 1000 * (nums[nums[i]] % 1000); + System.out.println(nums[i]); + } + for (int i = 0; i < n; i++) { + nums[i] /= 1000; + } + return nums; + } + + public static void main(String[] args) { + int[] nums = new int[]{3, 2, 0, 1, 4}; + new Solution().buildArray(nums); + } +}