LeetCode 812題 最大三角形面積 -- JavaScript
已經有很久沒做了,尷尬~~~
題目描述:
給定包含多個點的集合,從其中取三個點組成三角形,返回能組成的最大三角形的面積。
示例 :
輸入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]] 輸出: 2 解釋: 這五個點如下圖所示。組成的橙色三角形是最大的,面積為2。
注意:
3 <= points.length <= 50
.- 不存在重複的點。
-
-50 <= points[i][j] <= 50
. - 結果誤差值在 以內都認為是正確答案。
方法分析:
該題的關鍵是要知道如何根據三個座標值來計算三角形的面積。假設我們知道有三個座標點
則三角形ABC的面積為:
知道了這一點之後,其它的就好辦了,直接遍歷陣列,取出三對座標,利用上述公式計算即可,最後取出結果的最大值。
程式碼實現:
var largestTriangleArea = function(points) { let max = 0; points.map(i => points.map(j => points.map(k => { max = Math.max(max,i[0]*(j[1] - k[1]) + j[0]*(k[1] - i[1]) + k[0]*(i[1] - j[1])); }))); return max / 2; };
當然,為了遍歷的次數更少,即執行時間更短,可以進行如下改寫:
var largestTriangleArea = function(points) { let len = points.length let max = 0; for (let i = 0; i < len - 2; i++) { for (let j = i + 1; j < len - 1; j++) { for (let k = j + 1; k < len; k++) { max = Math.max(max, Math.abs(points[i][0] * (points[j][1] - points[k][1]) + points[j][0] * (points[k][1] - points[i][1]) + points[k][0] * (points[i][1] - points[j][1]))) } } } return max / 2; };
程式碼解析:
該演算法的核心就是進行三角形面積的計算,通過三次遍歷獲得所有的座標組合,時間複雜度為。
相關推薦
LeetCode 812題 最大三角形面積 -- JavaScript
已經有很久沒做了,尷尬~~~ 題目描述: 給定包含多個點的集合,從其中取三個點組成三角形,返回能組成的最大三角形的面積。 示例 : 輸入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]] 輸出: 2 解釋: 這五個點如下圖所示。組
【LeetCode】812. 最大三角形面積
1.題目 給定包含多個點的集合,從其中取三個點組成三角形,返回能組成的最大三角形的面積。 示例: 輸入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]] 輸出: 2 解釋: 這五個點如下圖所示。組成的橙色三角形是最大的,面積為2。
812. 最大三角形面積
給定包含多個點的集合,從其中取三個點組成三角形,返回能組成的最大三角形的面積。 示例: 輸入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]] 輸出: 2 解釋: 這
hdu2202:最大三角形(凸包旋轉卡殼求最大三角形面積)
Problem Description 老師在計算幾何這門課上給Eddy佈置了一道題目,題目是這樣的:給定二維的平面上n個不同的點,要求在這些點裡尋找三個點,使他們構成的三角形擁有的面積最大。 Eddy對這道題目百思不得其解,想不通用什麼方法來解決,
Codeforces Round #358 (Div. 2) E 計算幾何 旋轉卡殼求最大三角形面積
連結:戳這裡 E. Alyona and Triangles time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard ou
leetcode_812_ 最大三角形面積
給定包含多個點的集合,從其中取三個點組成三角形,返回能組成的最大三角形的面積。 示例: 輸入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]] 輸出: 2 解釋: 這五個點如下圖所示。組成的橙色三角形是最大的,面積為2 注意: 3 &
158、最大三角形面積
題目描述 直接弄出根據三點來求一個三角形的面積公式即可 注意的是需要求模,然後用for迴圈進行遍歷 int tem = Math.abs(x2y3 + x1y2 + x3y1 - x3y2 - x2y1 - x1y3); class Solution { public dou
農田開發 NOJ (已知N個點選取3個求最大三角形面積問題)
E - 農田開發時間限制(普通/Java) : 1000 MS/ 3000 MS 執行記憶體限制 : 65536 KByte總提交 : 83 測試通過 : 43 比賽描述有一塊農田,田地裡安放上N個小
Triangle (旋轉卡殼求最大三角形面積)
Given n distinct points on a plane, your task is to find the triangle that have the maximum area, whose vertices are from the given points
Leetcode最大形狀面積的三題
給定一個n長非負整數陣列,每個元素值代表一個bar高度,求這些bar圍成的最大矩形面積。 思路如下: 先假定陣列是長為n的有序陣列num,則這些bar高度從左到右依次增加,例如1,2,5,7,8,此時圍成矩形面積將最大值: maxarea=max(num[0]*(n),n
(hdu step 7.1.6)最大三角形(凸包的應用——在n個點中找到3個點,它們所形成的三角形面積最大)
三角形 struct names com 都在 acm sni 都是 tran 題目:最大三角形Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S
【LeetCode】164. 最大間距 結題報告 (C++)
原題地址:https://leetcode-cn.com/problems/maximum-gap/description/ 題目描述: 給定一個無序的陣列,找出陣列在排序之後,相鄰元素之間最大的差值。 如果陣列元素個數小於 2,則返回 0。 示例 1: 輸入: [3,6,9,1
【LeetCode】85. 最大矩形 結題報告 (C++)
原題地址:https://leetcode-cn.com/problems/maximal-rectangle/description/ 題目描述: 給定一個僅包含 0 和 1 的二維二進位制矩陣,找出只包含 1 的最大矩形,並返回其面積。 示例: 輸入: [ ["1"
LeetCode——918. 環形子陣列的最大和(JavaScript)
給定一個由整數陣列 A 表示的環形陣列 C,求 C 的非空子陣列的最大可能和。 在此處,環形陣列意味著陣列的末端將會與開頭相連呈環狀。(形式上,當0 <= i < A.length 時 C[i] = A[i],而當 i >= 0 時 C[i+A.length] = C[
hdu step 7 1 6 最大三角形 凸包的應用——在n個點中找到3個點 它們所形成的三角形面積最大
題目:最大三角形Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 121 Accepted Submission(s): 61
Leetcode 84 柱狀圖中最大的面積
給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 以上是柱狀圖的示例,其中每個柱子的寬度為 1,給定的高度為 [2,1,5,6,2,3]。 圖中陰影部分為所能勾勒出的
Leetcode 84. Largest Rectangle in Histogram 柱狀圖的最大矩形面積
解決思路: 問題主要考察每一根柱子最大能擴多大,這個行為的實質就是找到柱子左邊剛比它小的柱子的位置在哪裡,以及右邊剛比它小的柱子位置在哪裡,為了模擬這個過程,我們可以用棧模擬這個過程。 棧裡邊儲存的是一個遞增柱子的位置,每次遇到一個比棧頂位
最大矩形面積(單調棧解法,我在此題探索到了許多)
目錄 》題目《 》思路《 》程式碼《 》題目《 在X軸上水平放置著 N 個條形圖,這 N 個條形圖就組成了一個柱狀圖,每個條形圖都是一個矩形,每個矩形都有相同的寬度,均為1單位長度,但是它們的高度並不相同。例如下圖,圖1包含的矩形的高分別為2,1,4,5,1,3,3 單位長度
[Leetcode] 第318題 最大單詞長度乘積
一、題目描述 給定一個字串陣列 words,找到 length(word[i]) * length(word[j]) 的最大值,並且這兩個單詞不含有公共字母。你可以認為每個單詞只包含小寫字母。如果不存在這樣的兩個單詞,返回 0。 示例 1: 輸入:
Leetcode刷題記—— 84. Largest Rectangle in Histogram(柱形圖中最大矩形面積)
一、題目敘述: Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of large