diff --git a/solution/3400-3499/3492.Maximum Containers on a Ship/README.md b/solution/3400-3499/3492.Maximum Containers on a Ship/README.md index 5de14b25d0a6b..1340937500a00 100644 --- a/solution/3400-3499/3492.Maximum Containers on a Ship/README.md +++ b/solution/3400-3499/3492.Maximum Containers on a Ship/README.md @@ -62,32 +62,57 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3400-3499/3492.Ma -### 方法一 +### 方法一:数学 + +我们先计算出船上可以装载的最大重量,即 $n \times n \times w$,然后取其与 $\text{maxWeight}$ 的最小值,再除以 $w$ 即可。 + +时间复杂度 $O(1)$,空间复杂度 $O(1)$。 #### Python3 ```python - +class Solution: + def maxContainers(self, n: int, w: int, maxWeight: int) -> int: + return min(n * n * w, maxWeight) // w ``` #### Java ```java - +class Solution { + public int maxContainers(int n, int w, int maxWeight) { + return Math.min(n * n * w, maxWeight) / w; + } +} ``` #### C++ ```cpp - +class Solution { +public: + int maxContainers(int n, int w, int maxWeight) { + return min(n * n * w, maxWeight) / w; + } +}; ``` #### Go ```go +func maxContainers(n int, w int, maxWeight int) int { + return min(n*n*w, maxWeight) / w +} +``` + +#### TypeScript +```ts +function maxContainers(n: number, w: number, maxWeight: number): number { + return (Math.min(n * n * w, maxWeight) / w) | 0; +} ``` diff --git a/solution/3400-3499/3492.Maximum Containers on a Ship/README_EN.md b/solution/3400-3499/3492.Maximum Containers on a Ship/README_EN.md index e835b5810361d..5f0a5e0d56753 100644 --- a/solution/3400-3499/3492.Maximum Containers on a Ship/README_EN.md +++ b/solution/3400-3499/3492.Maximum Containers on a Ship/README_EN.md @@ -60,32 +60,57 @@ edit_url: https://github.com/doocs/leetcode/edit/main/solution/3400-3499/3492.Ma -### Solution 1 +### Solution 1: Mathematics + +First, we calculate the maximum weight the boat can carry, which is $n \times n \times w$. Then, we take the minimum of this value and $\text{maxWeight}$, and divide it by $w$. + +The time complexity is $O(1)$, and the space complexity is $O(1)$. #### Python3 ```python - +class Solution: + def maxContainers(self, n: int, w: int, maxWeight: int) -> int: + return min(n * n * w, maxWeight) // w ``` #### Java ```java - +class Solution { + public int maxContainers(int n, int w, int maxWeight) { + return Math.min(n * n * w, maxWeight) / w; + } +} ``` #### C++ ```cpp - +class Solution { +public: + int maxContainers(int n, int w, int maxWeight) { + return min(n * n * w, maxWeight) / w; + } +}; ``` #### Go ```go +func maxContainers(n int, w int, maxWeight int) int { + return min(n*n*w, maxWeight) / w +} +``` + +#### TypeScript +```ts +function maxContainers(n: number, w: number, maxWeight: number): number { + return (Math.min(n * n * w, maxWeight) / w) | 0; +} ``` diff --git a/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.cpp b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.cpp new file mode 100644 index 0000000000000..05840e423cf7c --- /dev/null +++ b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.cpp @@ -0,0 +1,6 @@ +class Solution { +public: + int maxContainers(int n, int w, int maxWeight) { + return min(n * n * w, maxWeight) / w; + } +}; diff --git a/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.go b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.go new file mode 100644 index 0000000000000..709c3430f7b00 --- /dev/null +++ b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.go @@ -0,0 +1,3 @@ +func maxContainers(n int, w int, maxWeight int) int { + return min(n*n*w, maxWeight) / w +} diff --git a/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.java b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.java new file mode 100644 index 0000000000000..884a332034ac1 --- /dev/null +++ b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.java @@ -0,0 +1,5 @@ +class Solution { + public int maxContainers(int n, int w, int maxWeight) { + return Math.min(n * n * w, maxWeight) / w; + } +} diff --git a/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.py b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.py new file mode 100644 index 0000000000000..1aeac46ab7eae --- /dev/null +++ b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.py @@ -0,0 +1,3 @@ +class Solution: + def maxContainers(self, n: int, w: int, maxWeight: int) -> int: + return min(n * n * w, maxWeight) // w diff --git a/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.ts b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.ts new file mode 100644 index 0000000000000..c6dba24919781 --- /dev/null +++ b/solution/3400-3499/3492.Maximum Containers on a Ship/Solution.ts @@ -0,0 +1,3 @@ +function maxContainers(n: number, w: number, maxWeight: number): number { + return (Math.min(n * n * w, maxWeight) / w) | 0; +}