// 定义一个函数
// 功能: 求三个数的最大值
// 方案:
/*
* 1. 三位一体比较
* if(x>=y && x>=z){
x
} else if(y>=x && y>=z){
y
} else{
z
}
* 2. 两次二选一
* var t = if(x>y) x else y
* if(t>z) t else z
*/
def max(x: Int, y: Int, z: Int): Int = {
val t = if(x > y) x else y
if(t > z) t else z
}
def main(args: Array[String]): Unit = {
val ret = max(1000, 200, 100)
println(s"${ret}")
}
函数设计摘要
算法思路
采用"两次二选一"策略:
- 先比较前两个数,找出较大值
- 再用这个较大值与第三个数比较
- 时间复杂度:O(1),空间复杂度:O(1)
代码特点
- 使用
val声明不可变变量 - 利用 if-else 表达式返回值
- 函数体简洁,逻辑清晰
- 类型安全,编译时检查