程序员面试金典 - 面试题 16.13. 平分正方形(数学)
生活随笔
收集整理的這篇文章主要介紹了
程序员面试金典 - 面试题 16.13. 平分正方形(数学)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定兩個正方形及一個二維平面。請找出將這兩個正方形分割成兩半的一條直線。
假設正方形頂邊和底邊與 x 軸平行。
每個正方形的數據square包含3個數值,正方形的左下頂點坐標[X,Y] = [square[0],square[1]],以及正方形的邊長square[2]。
所求直線穿過兩個正方形會形成4個交點,請返回4個交點形成線段的兩端點坐標(兩個端點即為4個交點中距離最遠的2個點,這2個點所連成的線段一定會穿過另外2個交點)。
2個端點坐標[X1,Y1]和[X2,Y2]的返回格式為{X1,Y1,X2,Y2},要求若X1 != X2,需保證X1 < X2,否則需保證Y1 <= Y2。
若同時有多條直線滿足要求,則選擇斜率最大的一條計算并返回(與Y軸平行的直線視為斜率無窮大)。
示例: 輸入: square1 = {-1, -1, 2} square2 = {0, -1, 2} 輸出: {-1,0,2,0} 解釋: 直線 y = 0 能將兩個正方形同時分為等面積的兩部分,返回的兩線段端點為[-1,0]和[2,0]提示: square.length == 3 square[2] > 0來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/bisect-squares-lcci
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 過兩個正方形中心的直線
- 分成斜率無窮大(垂直于x軸)、斜率絕對值>=1、< 1 考慮
- 交點在上下邊,還是在左右邊
4 ms 8.6 MB
總結
以上是生活随笔為你收集整理的程序员面试金典 - 面试题 16.13. 平分正方形(数学)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员面试金典 - 面试题 16.19.
- 下一篇: LeetCode 1190. 反转每对括