- 921. Minimum Add to Make Parentheses Valid 使括号有效的最少添加
- 915. Partition Array into Disjoint Intervals 分割数组
- 932. Beautiful Array 漂亮数组
- 940. Distinct Subsequences II 不同的子序列 II
题目地址:https://leetcode.com/problems/largest-triangle-area/description/
Youhave a list of points in the plane. Return the area of the largest triangle that can be formed by any 3 of the points.
Example:
Input: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]
Output: 2
Explanation:
The five points are show in the figure below. The red triangle is the largest.
Notes:
给出一组二维坐标,求这些点能组成的最大三角形面积。
看了下数据的范围最多到50,所以O(n^3)的时间复杂度肯定能过的。所以直接使用三重遍即可。
根据坐标求三角形面积是有公式的。另外要注意的是我们再求的时候要加上绝对值符号。
class Solution:
def largestTriangleArea(self, points):
"""
:type points: List[List[int]]
:rtype: float
"""
res = 0
N = len(points)
for i in range(N - 2):
for j in range(i + 1, N - 1):
for k in range(i + 2, N):
(x1, y1), (x2, y2), (x3, y3) = points[i], points[j], points[k]
res = max(res, 0.5 * abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)))
return res
1 2 3 4 5 6 7 8 9 10 11 12 13 14
python的组合公式实现了数学中的组合运算符,节省了代码量。
class Solution:
def largestTriangleArea(self, points):
"""
:type points: List[List[int]]
:rtype: float
"""
S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2)
def f(p1, p2, p3):
(x1, y1), (x2, y2), (x3, y3) = p1, p2, p3
return 0.5 * abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2))
return max(f(a, b, c) for a, b, c in itertools.combinations(points, 3))
1 2 3 4 5 6 7 8 9 10 11
DDKK.COM 弟弟快看-教程,程序员编程资料站,版权归原作者所有
本文经作者:负雪明烛 授权发布,任何组织或个人未经作者授权不得转发
假设我有一个看起来像这样的数据框 A 0 17 1 21 2 18 3 11 4 4 5 27 6 21 7 11 8 7 9 4 10 7
当一周的“最大的一天”不存在时如何获取数据? 例如,如果我的数据库中不存在特定一周的星期五(假设星期六和星期日不在我的数据库中),我仍然希望能够获取星期四的数据。如果星期五和星期四都不存在,我想获取星
#include int main (void) { int phy,geo,i,highest,largest; int arr[2]={phy,geo}; printf(
这个问题是在一次采访中被问到的,我仍在寻找最佳解决方案。 给你一个有 N 个单元格的迷宫。每个单元格可以有多个入口点,但导出点不能超过一个(即入口/导出点是单向门,如阀门)。 单元格以从 0 开始的整
给定一个大的稀疏矩阵(比如 10k+ x 1M+),我需要找到一个子集,它不一定是连续的,由构成密集矩阵(所有非零元素)的行和列组成。我希望这个子矩阵在某些纵横比约束下尽可能大(不是最大和,而是最
题目地址:https://leetcode-cn.com/problems/check-if-a-number-is-majority-element-in-a-sorted-array/ 题目描述
题目地址:https://leetcode-cn.com/problems/count-largest-group/ 题目描述 Given an integer n. Each number fr
题目地址:https://leetcode.com/problems/largest-sum-of-averages/description/ 题目描述: Wepartition a row of
题目地址:https://leetcode.com/problems/largest-triangle-area/description/ 题目描述 Youhave a list of point
我使用 fastgreedy.community 生成一个社区对象,其中包含 15 个社区。但是我怎样才能在这 15 个社区中提取最大的社区呢? Community sizes 1 2 3
问。给定两个长度相等的数组 A 和 B,找到索引 [i,j] 的最大可能连续子数组,使得 max(A[i: j]) B[j]: Bq.pop() Bq.app
问。给定两个长度相等的数组 A 和 B,找到索引 [i,j] 的最大可能连续子数组,使得 max(A[i: j]) B[j]: Bq.pop() Bq.app
我想使用以下规则从文件夹中检索文件: 获取最大的文件 如果文件大小相同,则采用最新的文件。 到目前为止我已经尝试过以下方法: List folderFilePaths = new ArrayList(
我想知道我的思路是否正确。 我正在准备面试(作为一名大学生),我遇到的其中一个问题是找到数组中 K 个最大的数字。 我的第一个想法是只使用部分选择排序(例如,从第一个元素开始扫描数组,并为看到的最低元
我需要使用动态规划在零和一的矩阵中找到最大的三角形。所以如果这是我的矩阵: 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 然后有两个最大
给定一个元素数组,找到最大可能的数字通过使用数组的元素形成。 例如:10 9 答:910 2 3 5 78 答:78532 100 9 答:9100 我知道这个问题有一个使用自定义字符串比较器的解决方
我正在调试内存不足的异常。当我得到异常时,“虚拟字节”性能计数器指示有足够的可寻址空间。然而,问题在于可寻址空间碎片化严重,并且“最大空闲区域”(从 WinDbg 中的 !address 返回)太
题目地址:https://leetcode.com/problems/kth-largest-element-in-an-array/description/ 题目描述 Find the kth
题目地址:https://leetcode.com/problems/largest-time-for-given-digits/description/ 题目描述 Given an array
如何从java中的链表中删除最大元素?我知道我可以使用 get() 或 remove() 函数来检索/删除元素。但我想让它变得高效。我想使用迭代器。你知道我该怎么做吗?请注意,我不想创建自己的链表。我
我是一名优秀的程序员,十分优秀!