From 4cbb78c1e994bed8ad15f2457777373afe0e1b78 Mon Sep 17 00:00:00 2001 From: rain84 Date: Tue, 2 Jul 2024 17:03:59 +0300 Subject: [PATCH 1/4] feat: update ts solution to lc problem: No.1710 --- .../1710.Maximum Units on a Truck/README.md | 15 +++++---------- .../1710.Maximum Units on a Truck/README_EN.md | 15 +++++---------- .../1710.Maximum Units on a Truck/Solution.ts | 15 +++++---------- 3 files changed, 15 insertions(+), 30 deletions(-) diff --git a/solution/1700-1799/1710.Maximum Units on a Truck/README.md b/solution/1700-1799/1710.Maximum Units on a Truck/README.md index dbb767893437c..d3bc0f4e07150 100644 --- a/solution/1700-1799/1710.Maximum Units on a Truck/README.md +++ b/solution/1700-1799/1710.Maximum Units on a Truck/README.md @@ -151,18 +151,13 @@ func maximumUnits(boxTypes [][]int, truckSize int) (ans int) { #### TypeScript ```ts -function maximumUnits(boxTypes: number[][], truckSize: number): number { - boxTypes.sort((a, b) => b[1] - a[1]); - let sum = 0; +export function maximumUnits(boxTypes: number[][], truckSize: number): number { + boxTypes.sort(([_, a], [__, b]) => b - a); let ans = 0; for (const [count, size] of boxTypes) { - if (sum + count < truckSize) { - ans += size * count; - sum += count; - } else { - ans += (truckSize - sum) * size; - break; - } + ans += Math.min(truckSize, count) * size; + truckSize -= count; + if (truckSize < 0) break; } return ans; } diff --git a/solution/1700-1799/1710.Maximum Units on a Truck/README_EN.md b/solution/1700-1799/1710.Maximum Units on a Truck/README_EN.md index b08b30b77e361..1707726b8e65a 100644 --- a/solution/1700-1799/1710.Maximum Units on a Truck/README_EN.md +++ b/solution/1700-1799/1710.Maximum Units on a Truck/README_EN.md @@ -150,18 +150,13 @@ func maximumUnits(boxTypes [][]int, truckSize int) (ans int) { #### TypeScript ```ts -function maximumUnits(boxTypes: number[][], truckSize: number): number { - boxTypes.sort((a, b) => b[1] - a[1]); - let sum = 0; +export function maximumUnits(boxTypes: number[][], truckSize: number): number { + boxTypes.sort(([_, a], [__, b]) => b - a); let ans = 0; for (const [count, size] of boxTypes) { - if (sum + count < truckSize) { - ans += size * count; - sum += count; - } else { - ans += (truckSize - sum) * size; - break; - } + ans += Math.min(truckSize, count) * size; + truckSize -= count; + if (truckSize < 0) break; } return ans; } diff --git a/solution/1700-1799/1710.Maximum Units on a Truck/Solution.ts b/solution/1700-1799/1710.Maximum Units on a Truck/Solution.ts index 90a61161031e6..c13bba50f43dd 100644 --- a/solution/1700-1799/1710.Maximum Units on a Truck/Solution.ts +++ b/solution/1700-1799/1710.Maximum Units on a Truck/Solution.ts @@ -1,15 +1,10 @@ -function maximumUnits(boxTypes: number[][], truckSize: number): number { - boxTypes.sort((a, b) => b[1] - a[1]); - let sum = 0; +export function maximumUnits(boxTypes: number[][], truckSize: number): number { + boxTypes.sort(([_, a], [__, b]) => b - a); let ans = 0; for (const [count, size] of boxTypes) { - if (sum + count < truckSize) { - ans += size * count; - sum += count; - } else { - ans += (truckSize - sum) * size; - break; - } + ans += Math.min(truckSize, count) * size; + truckSize -= count; + if (truckSize < 0) break; } return ans; } From 4bb8c0bd9ded12d97b5beeb3eea67051921e8dce Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 07:41:14 +0800 Subject: [PATCH 2/4] Update README.md --- .../1710.Maximum Units on a Truck/README.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/solution/1700-1799/1710.Maximum Units on a Truck/README.md b/solution/1700-1799/1710.Maximum Units on a Truck/README.md index d3bc0f4e07150..8cfa12bdc66e0 100644 --- a/solution/1700-1799/1710.Maximum Units on a Truck/README.md +++ b/solution/1700-1799/1710.Maximum Units on a Truck/README.md @@ -291,16 +291,13 @@ func maximumUnits(boxTypes [][]int, truckSize int) (ans int) { ```ts function maximumUnits(boxTypes: number[][], truckSize: number): number { - const cnt = new Array(1001).fill(0); - for (const [a, b] of boxTypes) { - cnt[b] += a; - } + boxTypes.sort(([_, a], [__, b]) => b - a); let ans = 0; - for (let b = 1000; b > 0 && truckSize > 0; --b) { - const a = cnt[b]; - if (a > 0) { - ans += b * Math.min(truckSize, a); - truckSize -= a; + for (const [count, size] of boxTypes) { + ans += Math.min(truckSize, count) * size; + truckSize -= count; + if (truckSize < 0) { + break; } } return ans; From 63da7b411b5a51be38bae8c838b19f1673e6cfcf Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 07:41:27 +0800 Subject: [PATCH 3/4] Update README_EN.md --- .../1710.Maximum Units on a Truck/README_EN.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/solution/1700-1799/1710.Maximum Units on a Truck/README_EN.md b/solution/1700-1799/1710.Maximum Units on a Truck/README_EN.md index 1707726b8e65a..2ec2075f92b55 100644 --- a/solution/1700-1799/1710.Maximum Units on a Truck/README_EN.md +++ b/solution/1700-1799/1710.Maximum Units on a Truck/README_EN.md @@ -290,16 +290,13 @@ func maximumUnits(boxTypes [][]int, truckSize int) (ans int) { ```ts function maximumUnits(boxTypes: number[][], truckSize: number): number { - const cnt = new Array(1001).fill(0); - for (const [a, b] of boxTypes) { - cnt[b] += a; - } + boxTypes.sort(([_, a], [__, b]) => b - a); let ans = 0; - for (let b = 1000; b > 0 && truckSize > 0; --b) { - const a = cnt[b]; - if (a > 0) { - ans += b * Math.min(truckSize, a); - truckSize -= a; + for (const [count, size] of boxTypes) { + ans += Math.min(truckSize, count) * size; + truckSize -= count; + if (truckSize < 0) { + break; } } return ans; From 026a1dc1a574dcf7cccfd33e914cd9d7e2b29f4e Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Wed, 3 Jul 2024 07:41:36 +0800 Subject: [PATCH 4/4] Update Solution.ts --- .../1700-1799/1710.Maximum Units on a Truck/Solution.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/solution/1700-1799/1710.Maximum Units on a Truck/Solution.ts b/solution/1700-1799/1710.Maximum Units on a Truck/Solution.ts index c13bba50f43dd..23c065e191195 100644 --- a/solution/1700-1799/1710.Maximum Units on a Truck/Solution.ts +++ b/solution/1700-1799/1710.Maximum Units on a Truck/Solution.ts @@ -1,10 +1,12 @@ -export function maximumUnits(boxTypes: number[][], truckSize: number): number { +function maximumUnits(boxTypes: number[][], truckSize: number): number { boxTypes.sort(([_, a], [__, b]) => b - a); let ans = 0; for (const [count, size] of boxTypes) { ans += Math.min(truckSize, count) * size; truckSize -= count; - if (truckSize < 0) break; + if (truckSize < 0) { + break; + } } return ans; }