美文网首页
面试题 16.07. 最大数值

面试题 16.07. 最大数值

作者: itbird01 | 来源:发表于2022-01-27 09:06 被阅读0次
题目.png

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

解法1:
1.这道题看似很简单,但是考察的知识点很多,可以多方面去解题
2.首先最简单的解法就是使用Math.max函数,但是我们也知道,不符合题意哦!!!因为max源码就是通过比较符去得到最大值的。

解法2:
1.解这道题的关键点在于,我们不知道a-b的正负,我们怎么知道一个数字的正负呢?
2.首先想到的是,java的移位操作,如果(long)右移63位、(int)右移31位,这时的结果不就是我们迫切想知道的正负吗?
3.由于a、b为int型,所以a-b很有可能超过int,我们把结果声明为long
4.求得符号位之后(-1 or 0),然后求最大值就简单很多了
5.切记,这时a-b时,a和b必须都强转为long


image.png

解法3:

使用数学公式max = (a + b + abs(a - b)) / 2

解题遇到的问题

后续需要总结学习的知识点

##解法1
class Solution {
    public int missingNumber(int[] nums) {
        int k = nums.length, k1 = 0;
        for (int i = 0; i < nums.length; i++) {
            k = k ^ i;
            k1 = k1 ^ nums[i];
        }
        return k ^ k1;
    }
}

相关文章

  • 面试题 16.07. 最大数值

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

  • 2020-08-16 面试题 16.07. 最大数值

    https://leetcode-cn.com/problems/maximum-lcci/ max(a, b)的...

  • 最大,小数值

    ios 数值的最大最小值 (2015-07-13 15:29:08)转载▼ 分类: IOS NSIntegerMa...

  • 最大数值

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

  • 最大数值

    题目: 题目的理解: 使用一个其他能判断大小的函数就可以了。 python实现 提交 // END 是不是打开了算...

  • 第十三章出题

    【填空】1.若最大计数值为65536,现需计数3000,则需预置数:62536 解析:预置数=最大计数值-所需计数...

  • 数值的整数次方

    《剑指offer》面试题16:数值的整数次方 题目:实现函数double Power(double base,in...

  • 数值选择器(NumberPicker)使用

    目录 NumberPicker 数值选择器. 使用其上下旋转的方式选择数值. 默认选择数值,可以设定最大值和最小值...

  • isFinite()函数

    确定一个数值是不是位于最小值和最大值之间,可以用isFinite()函数。这个函数在参数位于最小与最大数值之间时会...

  • 一些函数备忘

    ceil(x)返回不小于x的最小整数值(然后转换为double型)。 floor(x)返回不大于x的最大整数值。 ...

网友评论

      本文标题:面试题 16.07. 最大数值

      本文链接:https://www.haomeiwen.com/subject/unpbhrtx.html