题解 | #获取最大值#

获取最大值

https://www.nowcoder.com/practice/d2707eaf98124f1e8f1d9c18ad487f76

不用任何判断语句和比较操作,返回两个数的最大值

(主要讲没bug的方法二)

public static int getMax2(int a, int b){

int c = a - b;

int sa = sign(a);

int sb = sign(b);

int sc = sign(c);

int diffAB = sa ^ sb;

int sameAB = diffAB ^ 1;

int returnA = diffAB * sa + sameAB * sc; (表示了所有可能a较大的情况,而且这两种表示互斥,并非代表所有情况,所以不是对立)

int returnB = returnA ^ 1;

return a * returnA + b * returnB;

}

public static int sign(int n) {

return (n >>> 31) ^ 1;

}

全部评论

相关推荐

大疆在线测评都考什么呀,会考企业概况啥的吗
又被画饼了的做题家很...:不会。刚做完,就是材料分析、态度题、算术题、逻辑题。总共60道。
投递大疆等公司7个岗位
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务