【LeetCode-面試演算法經典-Java實現】【223-Rectangle Area(矩形地區)】__矩形

來源:互聯網
上載者:User
【223-Rectangle Area(矩形地區)】 【LeetCode-面試演算法經典-Java實現】【所有題目目錄索引】 代碼下載【https://github.com/Wang-Jun-Chao】 原題

  Find the total area covered by two rectilinear rectangles in a 2D plane.

  Each rectangle is defined by its bottom left corner and top right corner as shown in the figure.
  Rectangle Area
  Assume that the total area is never beyond the maximum possible value of int.
題目大意

  計算兩個矩形總共覆蓋的面積。
解題思路

  計算方法為矩形1的面積+矩形2的面積-兩個矩形共同的覆蓋面積。
代碼實現

演算法實作類別

import java.util.*;public class Solution {    public int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {        long area = (long) (C - A) * (D - B) + (long)(G - E) * (H - F);        // Math.min(C, G) 表示右邊邊的最小的邊        // Math.max(A, E) 表示左邊邊的最大的邊        // 下面的減法會產生數組越介,要擴大資料範圍        long width = Math.max((long)Math.min(C, G) - (long)Math.max(A, E), 0);        // Math.min(D, H) 表示頂邊邊的最小的邊        // Math.max(B, F) 表示底邊邊的最大的邊        long height = Math.max((long)Math.min(D, H) - (long)Math.max(B, F), 0);        return (int)(area - width * height);    }}
評測結果

  點擊圖片,滑鼠不釋放,拖動一段位置,釋放後在新的視窗中查看完整圖片。

特別說明 歡迎轉載,轉載請註明出處【http://blog.csdn.net/derrantcm/article/details/48084065】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.