11. Container With Most Water
2016-04-19 16:20
459 查看
Given n non-negative integers a1, a2,
..., an, where each represents a point at coordinate (i, ai). n vertical
lines are drawn such that the two endpoints of line i is at (i, ai) and (i,
0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.
Note: You may not slant the container.
思路:设置两个指针i,j分别指向数组的头和尾,如果height[i]<height[j]的话,如果height[k]<height[i] k++;
如果height[i]>height[j]的话,如果height[k]<height[j] j--;
代码如下(已通过leetcode)
public class Solution {
public int maxArea(int[] height) {
int n = height.length;
int i = 0;
int j = n - 1;
int res = 0;
while (i < j) {
res = Math.max(res, Math.min(height[i], height[j]) * (j - i));
if (height[i] < height[j]) {
int k = i;
while (k < j && height[k] <= height[i])
k++;
i = k;
} else {
int k = j;
while (k > i && height[k] <= height[j])
k--;
j = k;
}
}
return res;
}
}
..., an, where each represents a point at coordinate (i, ai). n vertical
lines are drawn such that the two endpoints of line i is at (i, ai) and (i,
0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.
Note: You may not slant the container.
思路:设置两个指针i,j分别指向数组的头和尾,如果height[i]<height[j]的话,如果height[k]<height[i] k++;
如果height[i]>height[j]的话,如果height[k]<height[j] j--;
代码如下(已通过leetcode)
public class Solution {
public int maxArea(int[] height) {
int n = height.length;
int i = 0;
int j = n - 1;
int res = 0;
while (i < j) {
res = Math.max(res, Math.min(height[i], height[j]) * (j - i));
if (height[i] < height[j]) {
int k = i;
while (k < j && height[k] <= height[i])
k++;
i = k;
} else {
int k = j;
while (k > i && height[k] <= height[j])
k--;
j = k;
}
}
return res;
}
}
相关文章推荐
- HDU 1104 remainder
- SFTP 上传文件报错:SFTP ERROR?Algorithm negotiation fail
- ERROR 1215 (HY000): Cannot add foreign key constraint 解决方法
- [2016-04-19 15:46:03 - IceHoloReader1.0] Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER [20
- Jenkins进阶系列之——02email-ext邮件通知模板
- AssertionFailedError
- 如何用Paint实现文字居中?
- Failed to initialize end point associated with ProtocolHandler
- Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知
- monodb因 /usr/lib64/libssl.so.10: no version information available原因不能连接的问题
- No valid signing identities (i.e. certificate and private key pair) matching the team ID “(null)” were found.
- Paint及Canvas的简单应用
- light Oj 1071 - Baker Vai(记忆化搜索)
- hdoj 1789 Doing Homework again
- 提示:Failure [INSTALL_FAILED_ALREADY_EXISTS]
- unresolved external symbol _Winmain@16问题解决办法
- 设计模式总结之职责链模式 (Chain of responsibility)
- 为什么要内存对齐 Data alignment: Straighten up and fly right
- UVA_474_Heads / Tails Probability
- 关于AIR新浪登录测试