最大数值
- 难度:Easy
- 题目链接:https://leetcode-cn.com/problems/maximum-lcci/
题目描述
编写一个方法,找出两个数字a
和b
中最大的那一个。不得使用if-else或其他比较运算符。
示例:
输入: a = 1, b = 2 输出: 2
解法:
看看 a-b 的结果的符号,就可以确定 a 和 b 谁大了。
class Solution {
public:
int maximum(int a, int b) {
uint64_t diff = static_cast<int64_t>(a) - b;
int k = diff >> 63; // k 要么是 0 要么是 1
return (1-k) * a + k * b;
}
};