diff --git a/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/README.md b/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/README.md index 8b89ac1c47017..999616c5a1702 100644 --- a/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/README.md +++ b/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/README.md @@ -36,7 +36,7 @@ tags:
输入:grid = [[2,4],[6,8]], x = 2
输出:4
-解释:可以执行下述操作使所有元素都等于 4 :
+解释:可以执行下述操作使所有元素都等于 4 :
- 2 加 x 一次。
- 6 减 x 一次。
- 8 减 x 两次。
@@ -194,6 +194,44 @@ func abs(x int) int {
}
```
+#### TypeScript
+
+```ts
+function minOperations(grid: number[][], x: number): number {
+ const arr = grid.flat(2);
+ arr.sort((a, b) => a - b);
+ const median = arr[Math.floor(arr.length / 2)];
+
+ let res = 0;
+ for (const val of arr) {
+ const c = Math.abs(val - median) / x;
+ if (c !== (c | 0)) return -1;
+ res += c;
+ }
+
+ return res;
+}
+```
+
+#### JavaScript
+
+```js
+function minOperations(grid, x) {
+ const arr = grid.flat(2);
+ arr.sort((a, b) => a - b);
+ const median = arr[Math.floor(arr.length / 2)];
+
+ let res = 0;
+ for (const val of arr) {
+ const c = Math.abs(val - median) / x;
+ if (c !== (c | 0)) return -1;
+ res += c;
+ }
+
+ return res;
+}
+```
+
diff --git a/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/README_EN.md b/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/README_EN.md
index 202e609bd8de3..69ac6cc530a98 100644
--- a/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/README_EN.md
+++ b/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/README_EN.md
@@ -33,7 +33,7 @@ tags:
Input: grid = [[2,4],[6,8]], x = 2
Output: 4
-Explanation: We can make every element equal to 4 by doing the following:
+Explanation: We can make every element equal to 4 by doing the following:
- Add x to 2 once.
- Subtract x from 6 once.
- Subtract x from 8 twice.
@@ -186,6 +186,44 @@ func abs(x int) int {
}
```
+#### TypeScript
+
+```ts
+function minOperations(grid: number[][], x: number): number {
+ const arr = grid.flat(2);
+ arr.sort((a, b) => a - b);
+ const median = arr[Math.floor(arr.length / 2)];
+
+ let res = 0;
+ for (const val of arr) {
+ const c = Math.abs(val - median) / x;
+ if (c !== (c | 0)) return -1;
+ res += c;
+ }
+
+ return res;
+}
+```
+
+#### JavaScript
+
+```js
+function minOperations(grid, x) {
+ const arr = grid.flat(2);
+ arr.sort((a, b) => a - b);
+ const median = arr[Math.floor(arr.length / 2)];
+
+ let res = 0;
+ for (const val of arr) {
+ const c = Math.abs(val - median) / x;
+ if (c !== (c | 0)) return -1;
+ res += c;
+ }
+
+ return res;
+}
+```
+
diff --git a/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/Solution.js b/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/Solution.js
new file mode 100644
index 0000000000000..43d9b37cd033c
--- /dev/null
+++ b/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/Solution.js
@@ -0,0 +1,14 @@
+function minOperations(grid, x) {
+ const arr = grid.flat(2);
+ arr.sort((a, b) => a - b);
+ const median = arr[Math.floor(arr.length / 2)];
+
+ let res = 0;
+ for (const val of arr) {
+ const c = Math.abs(val - median) / x;
+ if (c !== (c | 0)) return -1;
+ res += c;
+ }
+
+ return res;
+}
diff --git a/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/Solution.ts b/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/Solution.ts
new file mode 100644
index 0000000000000..e470b9bcdb6c9
--- /dev/null
+++ b/solution/2000-2099/2033.Minimum Operations to Make a Uni-Value Grid/Solution.ts
@@ -0,0 +1,14 @@
+function minOperations(grid: number[][], x: number): number {
+ const arr = grid.flat(2);
+ arr.sort((a, b) => a - b);
+ const median = arr[Math.floor(arr.length / 2)];
+
+ let res = 0;
+ for (const val of arr) {
+ const c = Math.abs(val - median) / x;
+ if (c !== (c | 0)) return -1;
+ res += c;
+ }
+
+ return res;
+}