您的位置:首页 > 其它

牛客网左程云老师的算法视频个人总结

2016-07-28 15:38 351 查看
第一节课

第一题:题意与leetcode354的问题相同

算法原型 最长递增子序列问题

/*
* 题意:详见2016 《牛课堂第一节课课件.pdf》第3题,leetcode11原题,找两个边界来装最多的水
*/
/*
* solution : 时间复杂度 O(n) 空间复杂度O(1)
* 还是利用双指针left和right分别指向第一个元素和最后一个元素
* 每次移动双指针中较小者,并更新最大装水量
*/
public class Question2 {
public int maxArea(int[] height) {
if (height == null || height.length < 2)
return 0;
int left = 0, right = height.length - 1;
int max = 0;
while (left <= right) {
//用这句比较慢
//            max = Math.max(max, (right-left)*Math.min(height[left], height[right]));
if (height[left] < height[right]) {
int cur = height[left] * (right - left);
max = max > cur ? max : cur;
left++;
} else {
int cur = height[right] * (right - left);
max = max > cur ? max : cur;
right--;
}
}
return max;
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: