📣 独立日限时特惠: VIP通行证立减$68
楼主: AChris
跳转到指定楼层
上一主题 下一主题
收起左侧

刷题skill+编程cultivation+记录

🔗
 楼主| AChris 2019-5-2 02:21:25 | 只看该作者
全局:
05/01/2019 Day46
LeetCode 42. Trapping Rain Water
Importantce【5】

解题思路:
双指针的题目。
主要是考虑每一个位置可以存的水的体积是 min{leftMax, rightMax} - height[i]

  1. class Solution {
  2.     public int trap(int[] height) {
  3.         // time: O(n) 99.85%
  4.         // space: O(1) 89.09%
  5.         int res = 0;
  6.         if (height == null || height.length == 0) return res;
  7.         
  8.         int left = 0, right = height.length - 1;
  9.         int leftMax = 0, rightMax = 0;
  10.         while (left < right) {
  11.             if (height[left] < height[right]) { // height[right] <= rightMax_before
  12.                 leftMax = Math.max(leftMax, height[left]);
  13.                 res += leftMax - height[left];
  14.                 left++;
  15.             } else {
  16.                 rightMax = Math.max(rightMax, height[right]);
  17.                 res += rightMax - height[right];
  18.                 right--;
  19.             }
  20.         }
  21.         return res;
  22.     }
  23. }
复制代码
回复

使用道具 举报

🔗
 楼主| AChris 2019-6-23 05:36:38 | 只看该作者
全局:
KMP算法在第 6 页,第60垄
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表