栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode42. 接雨水 && LeetCode48. 旋转图像

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode42. 接雨水 && LeetCode48. 旋转图像

思路

用的是双指针法:

        定义两个指针left和right,从左右两边开始遍历,没移动一次就将两个指针对应位置的高度进行比较:在高度较低的一边进行加水。此时需要注意当前高度和当前部分的最大高度之间的差值就是接水的数量。然后让指针向中间移动。

        这个方法很巧妙,如果想明白了,比用其他方法简单。

代码
class Solution {
    public int trap(int[] height) {
        int left = 0;
        int right = height.length-1;
        int leftMax = 0;
        int rightMax = 0;
        int res = 0;
        while(leftheight[left]?leftMax:height[left];
                res += leftMax - height[left];
                left++;
            }else{
                rightMax = rightMax>height[right]?rightMax:height[right];
                res += rightMax-height[right];
                right--;
            }
        }
        return res;

    }
}
LeetCode48. 旋转图像

思路

先沿对称轴反转然后再要中线反转即可。

代码
class Solution {
    public void rotate(int[][] matrix) {
        int temp = 0;
        for(int i =0;i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/955057.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号