0%

最大数值

题目地址

难度:

题目描述:

编写一个方法,找出两个数字ab中最大的那一个。不得使用if-else或其他比较运算符。

示例:

1
2
输入: a = 1, b = 2
输出: 2
🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️解题过程🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️
解题过程:

思路:

使用三目运算符,不知道可以吗?

c++代码:(执行用时0ms,击败100.00%,内存消耗6.2M,击败6.42%)

1
2
3
4
5
6
class Solution {
public:
int maximum(int a, int b) {
return a>b?a:b;
}
};
⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳总 结⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳
总结:

没有官方题解,题目要求不能使用比较运算符,三目运算符中也包含比较了,应该也是不满足题意的。通过看题解,总结如下:

返回两个数的最大值,两种情况:

  • $a>b$,那么返回$\frac{a+b+a-b}{2}$
  • $a<b$,那么返回$\frac{b+a+b-a}{2}$

两种情况综合一下就是要返回$\frac{a+b+|a-b|}{2}$

nice😊,注意a、b要强制转换成long进行计算,否则会溢出。

------------- THE END! THANKS! -------------