diff --git a/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/README.md b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/README.md
index 64b1f44e0ee6b..70b19aa6557fd 100644
--- a/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/README.md
+++ b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/README.md
@@ -41,11 +41,12 @@ result[2] = |5-2| + |5-3| + |5-5| = 3 + 2 + 0 = 5。
1 <= nums[i] <= nums[i + 1] <= 104
-
## 解法
+前缀和实现。
+
### **Python3**
@@ -53,7 +54,17 @@ result[2] = |5-2| + |5-3| + |5-5| = 3 + 2 + 0 = 5。
```python
-
+class Solution:
+ def getSumAbsoluteDifferences(self, nums: List[int]) -> List[int]:
+ n = len(nums)
+ presum = [0] * (n + 1)
+ for i in range(n):
+ presum[i + 1] = presum[i] + nums[i]
+ res = []
+ for i, num in enumerate(nums):
+ t = num * i - presum[i] + presum[n] - presum[i + 1] - num * (n - i - 1)
+ res.append(t)
+ return res
```
### **Java**
@@ -61,7 +72,59 @@ result[2] = |5-2| + |5-3| + |5-5| = 3 + 2 + 0 = 5。
```java
+class Solution {
+ public int[] getSumAbsoluteDifferences(int[] nums) {
+ int n = nums.length;
+ int[] presum = new int[n + 1];
+ for (int i = 0; i < n; ++i) {
+ presum[i + 1] = presum[i] + nums[i];
+ }
+ int[] res = new int[n];
+ for (int i = 0; i < n; ++i) {
+ res[i] = nums[i] * i - presum[i] + presum[n] - presum[i + 1] - nums[i] * (n - i - 1);
+ }
+ return res;
+ }
+}
+```
+
+### **C++**
+
+```cpp
+class Solution {
+public:
+ vector getSumAbsoluteDifferences(vector& nums) {
+ int n = nums.size();
+ vector presum(n + 1);
+ for (int i = 0; i < n; ++i) {
+ presum[i + 1] = presum[i] + nums[i];
+ }
+ vector res;
+ for (int i = 0; i < n; ++i) {
+ int t = nums[i] * i - presum[i] + presum[n] - presum[i + 1] - nums[i] * (n - i - 1);
+ res.push_back(t);
+ }
+ return res;
+ }
+};
+```
+### **Go**
+
+```go
+func getSumAbsoluteDifferences(nums []int) []int {
+ n := len(nums)
+ presum := make([]int, n+1)
+ for i := 0; i < n; i++ {
+ presum[i+1] = presum[i] + nums[i]
+ }
+ var res []int
+ for i := 0; i < n; i++ {
+ t := nums[i]*i - presum[i] + presum[n] - presum[i+1] - nums[i]*(n-i-1)
+ res = append(res, t)
+ }
+ return res
+}
```
### **...**
diff --git a/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/README_EN.md b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/README_EN.md
index 5fdd6965ee8f5..3800bf7345623 100644
--- a/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/README_EN.md
+++ b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/README_EN.md
@@ -37,7 +37,6 @@ result[2] = |5-2| + |5-3| + |5-5| = 3 + 2 + 0 = 5.
1 <= nums[i] <= nums[i + 1] <= 104
-
## Solutions
@@ -45,13 +44,75 @@ result[2] = |5-2| + |5-3| + |5-5| = 3 + 2 + 0 = 5.
### **Python3**
```python
-
+class Solution:
+ def getSumAbsoluteDifferences(self, nums: List[int]) -> List[int]:
+ n = len(nums)
+ presum = [0] * (n + 1)
+ for i in range(n):
+ presum[i + 1] = presum[i] + nums[i]
+ res = []
+ for i, num in enumerate(nums):
+ t = num * i - presum[i] + presum[n] - presum[i + 1] - num * (n - i - 1)
+ res.append(t)
+ return res
```
### **Java**
```java
+class Solution {
+ public int[] getSumAbsoluteDifferences(int[] nums) {
+ int n = nums.length;
+ int[] presum = new int[n + 1];
+ for (int i = 0; i < n; ++i) {
+ presum[i + 1] = presum[i] + nums[i];
+ }
+ int[] res = new int[n];
+ for (int i = 0; i < n; ++i) {
+ res[i] = nums[i] * i - presum[i] + presum[n] - presum[i + 1] - nums[i] * (n - i - 1);
+ }
+ return res;
+ }
+}
+```
+
+### **C++**
+
+```cpp
+class Solution {
+public:
+ vector getSumAbsoluteDifferences(vector& nums) {
+ int n = nums.size();
+ vector presum(n + 1);
+ for (int i = 0; i < n; ++i) {
+ presum[i + 1] = presum[i] + nums[i];
+ }
+ vector res;
+ for (int i = 0; i < n; ++i) {
+ int t = nums[i] * i - presum[i] + presum[n] - presum[i + 1] - nums[i] * (n - i - 1);
+ res.push_back(t);
+ }
+ return res;
+ }
+};
+```
+### **Go**
+
+```go
+func getSumAbsoluteDifferences(nums []int) []int {
+ n := len(nums)
+ presum := make([]int, n+1)
+ for i := 0; i < n; i++ {
+ presum[i+1] = presum[i] + nums[i]
+ }
+ var res []int
+ for i := 0; i < n; i++ {
+ t := nums[i]*i - presum[i] + presum[n] - presum[i+1] - nums[i]*(n-i-1)
+ res = append(res, t)
+ }
+ return res
+}
```
### **...**
diff --git a/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.cpp b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.cpp
new file mode 100644
index 0000000000000..9739c239b26da
--- /dev/null
+++ b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.cpp
@@ -0,0 +1,16 @@
+class Solution {
+public:
+ vector getSumAbsoluteDifferences(vector& nums) {
+ int n = nums.size();
+ vector presum(n + 1);
+ for (int i = 0; i < n; ++i) {
+ presum[i + 1] = presum[i] + nums[i];
+ }
+ vector res;
+ for (int i = 0; i < n; ++i) {
+ int t = nums[i] * i - presum[i] + presum[n] - presum[i + 1] - nums[i] * (n - i - 1);
+ res.push_back(t);
+ }
+ return res;
+ }
+};
\ No newline at end of file
diff --git a/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.go b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.go
new file mode 100644
index 0000000000000..d0d1b7c36d5dd
--- /dev/null
+++ b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.go
@@ -0,0 +1,13 @@
+func getSumAbsoluteDifferences(nums []int) []int {
+ n := len(nums)
+ presum := make([]int, n+1)
+ for i := 0; i < n; i++ {
+ presum[i+1] = presum[i] + nums[i]
+ }
+ var res []int
+ for i := 0; i < n; i++ {
+ t := nums[i]*i - presum[i] + presum[n] - presum[i+1] - nums[i]*(n-i-1)
+ res = append(res, t)
+ }
+ return res
+}
\ No newline at end of file
diff --git a/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.java b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.java
new file mode 100644
index 0000000000000..6b9afe944eb94
--- /dev/null
+++ b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.java
@@ -0,0 +1,14 @@
+class Solution {
+ public int[] getSumAbsoluteDifferences(int[] nums) {
+ int n = nums.length;
+ int[] presum = new int[n + 1];
+ for (int i = 0; i < n; ++i) {
+ presum[i + 1] = presum[i] + nums[i];
+ }
+ int[] res = new int[n];
+ for (int i = 0; i < n; ++i) {
+ res[i] = nums[i] * i - presum[i] + presum[n] - presum[i + 1] - nums[i] * (n - i - 1);
+ }
+ return res;
+ }
+}
\ No newline at end of file
diff --git a/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.py b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.py
new file mode 100644
index 0000000000000..1a2fa22c0184d
--- /dev/null
+++ b/solution/1600-1699/1685.Sum of Absolute Differences in a Sorted Array/Solution.py
@@ -0,0 +1,11 @@
+class Solution:
+ def getSumAbsoluteDifferences(self, nums: List[int]) -> List[int]:
+ n = len(nums)
+ presum = [0] * (n + 1)
+ for i in range(n):
+ presum[i + 1] = presum[i] + nums[i]
+ res = []
+ for i, num in enumerate(nums):
+ t = num * i - presum[i] + presum[n] - presum[i + 1] - num * (n - i - 1)
+ res.append(t)
+ return res