力扣 面试题 05.06. 整数转换

这篇具有很好参考价值的文章主要介绍了力扣 面试题 05.06. 整数转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

力扣 面试题 05.06. 整数转换,c语言,leetcode

思路:

牵扯到二进制数,基本上要考虑位运算符,相关知识可以见

之前做过类似的题目,大致思路就是先用按位异或^找出不同位,再用n&(n-1)计算出不同位的个数,但是这道题有个小坑,就是极限了话,n刚好为int类型的最小值(即二进制数为1000……0000),此时n-1就会溢出。

就是A和B的二进制数刚好是1000……0000和0000……0000,此时n=A^B就是1000……0000,所以此时n再减1就溢出了,因此我们要考虑这个特殊情况

INT_MIN  代表int类型的最小值,即-2147483648

INT_MAX 代表int类型的最大值,即2147483647

定义INT_MIN 只能   INT_MIN = ( - INT_MAX) - 1 

而不能  INT_MIN = - ( INT_MAX + 1)          因为这样就溢出最大值了 

其头文件为#include<limits.h>文章来源地址https://www.toymoban.com/news/detail-835198.html

int convertInteger(int A, int B)
{
    int count=0;
    int n=A^B;
    while(n)
    {
        if(n==INT_MIN)   //如果是最小值
        {
            count++;     
            break;
        }
        n=n&(n-1);       //减去一个1的个数
        count++;         
    }
    return count;
}

到了这里,关于力扣 面试题 05.06. 整数转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Leetcode -1290.二进制链表转整数 -剑指Offer 06.从尾到头打印链表】

    题目:给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的十进制值 。 示例 1: 输入:head = [1, 0, 1] 输出:5 解释:二进制数(101) 转化为十进制数(5) 示例 2: 输入:head = [0] 输出:

    2023年04月26日
    浏览(26)
  • Leetcode 8. 字符串转换整数 (atoi)

    请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果

    2024年04月09日
    浏览(71)
  • LeetCode-字符串转换整数atoi(8)

    请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果

    2024年01月16日
    浏览(56)
  • 【LeetCode】字符串转换整数 (atoi) [M](模拟)

    8. 字符串转换整数 (atoi) - 力扣(LeetCode) 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负

    2024年02月07日
    浏览(55)
  • 2235.两整数相加:19种语言解法(力扣全解法)

    力扣题目链接:https://leetcode.cn/problems/add-two-integers/ 给你两个整数  num1 和 num2 ,返回这两个整数的和。   示例 1: 示例 2:   提示: -100 = num1, num2 = 100 时间复杂度 O ( 1 ) O(1) O ( 1 ) 空间复杂度 O ( 1 ) O(1) O ( 1 ) AC代码 C++ C Python Python2 Java C# Javascript Ruby Swift Go Scala Kotlin Rust PHP

    2024年02月12日
    浏览(28)
  • LeetCode 面试题 16.08. 整数的英语表示

      给定一个整数,打印该整数的英文描述。 示例 1: 输入: 123 输出: “One Hundred Twenty Three” 示例 2: 输入: 12345 输出: “Twelve Thousand Three Hundred Forty Five” 示例 3: 输入: 1234567 输出: “One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven” 示例 4: 输入: 1234567891 输出: “One Billi

    2024年02月06日
    浏览(26)
  • LeetCode 面试题 16.06. 最小差

      给定两个整数数组 a 和 b ,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差 示例: 输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8} 输出:3,即数值对(11, 8) 提示: 1 = a.length, b.length = 100000 -2147483648 = a[i], b[i] = 2147483647 正确结果在区间 [0, 2147483647

    2024年02月08日
    浏览(24)
  • 【LeetCode-中等】剑指 Offer 67. 把字符串转换成整数(详解)

    写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续

    2024年02月15日
    浏览(38)
  • (其他) 剑指 Offer 67. 把字符串转换成整数 ——【Leetcode每日一题】

    难度:中等 写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可

    2024年02月09日
    浏览(39)
  • 整数转换-C语言/Java

    描述 整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。A,B范围在[-2147483648, 2147483647]之间。 示例1: 示例2: 输入:A = 1,B = 2  输出:2 分析: 确定需要改变几个位才能将整数A转成整数B是说A需要改变几个二进制位才能转换为B,也就是A中有几个不同于

    2024年02月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包