面试题 16.07. 最大数值

​​题目来源:

        leetcode题目,网址:面试题 16.07. 最大数值 - 力扣(LeetCode)

解题思路:

       转化为 long 类型后获得 a-b 的结果,取符号位 c,然后返回 a*(c^1)+b*c 的计算结果即可。若c 为 1 ,则 ab,a*(c^1)+b*c 的计算结果为 a。 

解题代码:

class Solution {
    public int maximum(int a, int b) {
        int c=(int)(((long)a-(long)b)>>>63);
        return a*(c^1)+b*c;
    }
}

总结:

        没做出来,看他人题解做的。有两种解法比较符合题意,一是基于数学,结果为 (Math.sqrt((b-a)*(b-a))+a+b)/2。另一种是上述位运算。


你可能感兴趣的:(#,二刷,java,leetcode)