java 第 01 课 223. 矩形面积

第一课 223. 矩形面积

  • 教学方法
  • 课前准备
  • 要求
  • 第一课 223. 矩形面积
  • 基础知识
    • 一、max,min
      • (一)Python max() 内置函数
      • (二)Java Math.max()
    • 二、Python 与 Java 语法比较

教学方法

1、利用 Leetcode 学习 java 基础数据结构;
2、对比 python 进行 java 教学;
3、对理解不深的内容,先强行记忆,由点到面。

课前准备

1、注册 CSND 和 Leetcode 账号;
2、没有电脑的同学准备两个手机,一个用于听讲,一个用于同步操作。

要求

1、必须记住相关的英语单词,掌握用法;
2、有一定的数学基础;
3、需要较好的理解和记忆能力;
4、要有较好的耐力,不要一有难度就放弃!只要坚持一定有很大的收获。

第一课 223. 矩形面积

Leetcode
知识点: class, public, static, return, Math.max(), Math.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
class Solution {
    public int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {
        int a = (ax2 - ax1) * (ay2 - ay1), b = (bx2 - bx1) * (by2 - by1);
        int width = Math.min(ax2, bx2) - Math.max(ax1, bx1), height = Math.min(ay2, by2) - Math.max(ay1, by1);
        int overlap = Math.max(width, 0) * Math.max(height, 0);
        return a + b - overlap;
    }
}

基础知识

一、max,min

(一)Python max() 内置函数

函数功能为取传入的多个参数中的最大值,或者传入的 可迭代对象 元素中的最大值。

max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])

参数:
默认 数值型 参数,取值大者;
字符型 参数,取字母表排序靠后者。
key 可做为一个函数,用来 指定取最大值的方法
default 用来指定最大值不存在时返回的 默认值
arg1 字符型参数/数值型参数,默认数值型。

返回值:最大值。

1、传入多个参数取最大值(元组、列表、集合)。

max(1,2,3,4,5,6)

2、传入可迭代对象时,取其元素最大值。

max('12345') # '5'

3、传入可迭代对象为空时,必须指定参数 default,用来返回默认值。

max((), default = 1) # 1
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}

(二)Java Math.max()

模块 java.base 软件包 java.lang
Class Math 包含用于执行基本数字运算的 静态方法

java.lang.Math.max(param1, param2) 主要用来比较两个相同类型参数的大小,支持的类型有 double,float,int,long 四种类型。

Math.max('a', 'b') // 98 注意 按字符的 ASCII 码比较

二、Python 与 Java 语法比较

a, b, c = 1, 2, 3
a = b = c = 10 # 等价于 a = 10; b = a; c = a !!!

int a, b, c; // 声明了三个整形变量,初始值为 0。
a = 1; b = 2; c = 3; // 分别赋值
a = b = c = 10; // 赋同一个值

Python 可以按元组装包与解包赋值;简单的说就是一对一赋值。
Java 变量必须声明类型,同一类型变量可以用逗号分隔声明。
每一条语句必须以 “;” 结束。

class Solution:  # 声明 Solution 类 
    def computeArea(self, ax1: int, ay1: int, ...) -> int: # 定义方法 computeArea 

class Solution { // 声明 Solution 类 
    public int computeArea(int ax1, int ay1,...){ // 定义方法 computeArea ,int 类型的参数与返回值 
    } 
}

public 公有访问修饰符
被声明为 public 的类、方法、构造方法和接口能够被任何其他类访问。

如果几个相互访问的 public 类分布在不同的包中,则需要导入相应 public 类所在的包。由于类的继承性,类所有的公有方法和变量都能被其子类继承。

Java 程序的 main() 方法必须设置成公有的,否则,Java 解释器将不能运行该类。

default (默认)不使用任何修饰符
在同一包内可见。使用对象:类、接口、变量、方法。

你可能感兴趣的:(Java,教程,java,leetcode,开发语言)