1、注册 Leetcode
2、学会使用平台
知识点: return, max(), .min()
class Solution:
def computeArea(self, ax1: int, ay1: int, ax2: int, ay2: int, bx1: int, by1: int, bx2: int, by2: int) -> int:
a = (ax1 - ax2) * (ay1 - ay2)
b = (bx2 - bx1) * (by2 - by1)
w = min(ax2, bx2) - max(ax1, bx1)
h = min(ay2, by2) - max(ay1, by1)
c = max(w, 0) * max(h, 0)
return a + b - c
两个矩形,如何求解公共部分面积,如何统一包含、相交和相离的情况。
1、标识符: 只包含字母、数字、下划线(_),汉字也可以,但数字不能开头,自定义标识符不能使用关键字,如:min max if for 等,它们是留给系统用的。
2、变量: 事实上是一个地址,就象一个宿舍或几个宿舍,如:402 宿舍,这学期你住,下学期可能其他人住。地址是不变的,但内容是可变的。
3、=: 这里的等号不是指相等和数学中的概念不同,这里叫 赋值运算符,b402 = “应用3班”,表示现在 应用3班 在 b402 教室上课,用编程语言来讲,就是 “应用3班” 赋给 b402,前者是值(字符串),后者是变量。
4、==:双等于号是判断左右两边相等,是 比较运算符,相等结果为 真(True)、不相等为 假(False)。如:b402 == “应用3班”,如果 3班 不在 b402,为假,在为真。
5、min(a, b)、max(a, b) 内置函数,最简单的应用取两数的最小/大值。
a, b, c = 1, 2, 3
a = b = c = 10 # ▲ 等价于 a = 10; b = a; c = a
Python 可以按元组装包与解包赋值;简单的说就是一对一赋值。
class Solution: # 声明 Solution 类
def computeArea(self, ax1: int, ay1: int, ...) -> int: # 定义方法 computeArea
函数功能为取传入的多个参数中的最大值,或者传入的 可迭代对象 元素中的最大值。
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
参数:
默认 数值型 参数,取值大者; 字符型 参数,取字母表排序靠后者。
key 可做为一个函数,用来 指定取最大值的方法。
default 用来指定最大值不存在时返回的 默认值。
arg1 字符型参数/数值型参数,默认数值型。
返回值:最大值。
max(1,2,3,4,5,6) # 1、传入多个参数取最大值(元组、列表、集合)。
max('12345') # '5' # 2、传入可迭代对象时,取其元素最大值。
max((), default = 1) # 3、传入可迭代对象为空时,必须指定参数 default,用来返回默认值。
max([]) # ValueError: max() arg is an empty sequence
# 4、传入命名参数 key,其为一个函数,用来指定取最大值的方法。
student = [{'name': 'li', 'age': 24},{'name': 'he', 'age': 45} ]
max(student, key = lambda x: x['age']) # {'name': 'he', 'age': 45}