C/C++教程

【LeetCode】面试题 16.07. 最大数值(C++)

本文主要是介绍【LeetCode】面试题 16.07. 最大数值(C++),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

面试题 16.07. 最大数值

  • 1 题目描述
  • 2 示例描述
  • 3 解题思路
  • 4 代码详解

1 题目描述

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

2 示例描述

输入: a = 1, b = 2
输出: 2

3 解题思路

借鉴了一下题解里面大佬的,这里用到了数学公式 MAX(a,b) = (|a-b| + a + b) / 2 。但是还是觉得这个是违规的,因为abs用到了比较运算。

4 代码详解

class Solution {
public:
    int maximum(int a, int b) {
    long long A = a ;
    long long B = b ;
    return (int)(( fabs(A - B) + A + B ) /  2) ;
    }
};
这篇关于【LeetCode】面试题 16.07. 最大数值(C++)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!