首页 > 编程语言 >程序员面试金典---8

程序员面试金典---8

时间:2023-04-17 21:14:43浏览次数:41  
标签:return 金典 number param --- 程序员 num let max

下一个数

思路:

  1. 求出从最低位的1开始的连续的1的区间
  2. 将此区间全部变为0,并将区间左侧的那个0变为1
  3. 将第1步取出的区间右移,直到剩下的1的个数减少一个
  4. 将第2步和第3步的结果相或
/**
 * @param {number} num
 * @return {number[]}
 */
var findClosedNumbers = function(num) {
    const nextMax = function(num){
        let x = num &-num
        let y = x + num
        return (num & ~ y) / x >> 1 | y
    }

    if(num === 1) return [2, -1]
    if(num === 2147483647) return [-1, -1]
    let max = nextMax(num)
    let min = ~nextMax(~num)
    if(max < 0) max = -1
    return [max,min]
};

整数转换

思路:

  1. n=A^B,可以得到AB有哪几位不同的,即n二进制1的个数,就是AB有几位不同的数量
  2. n=n & (n - 1)可以去掉n二进制的最右边的一个1,可以统计1的数量
/**
 * @param {number} A
 * @param {number} B
 * @return {number}
 */
var convertInteger = function(A, B) {
        let n = A^B
        let count = 0
        while (n) {
        n = n & (n - 1);
        count++;
    }
    return count;
};

标签:return,金典,number,param,---,程序员,num,let,max
From: https://www.cnblogs.com/dgqp/p/17327518.html

相关文章

  • Add Again UVA - 11076
     defineS,itissumofallpossiblepermutationsofagivensetofdigits.Forexample,ifthedigitsare<123>,thensixpossiblepermutationsare<123>,<132>,<213>,<231>,<312>,<321>andthesumofthemis......
  • 面试题4-17
    操作系统的中断和异常有什么区别?中断是外部事件触发的,硬件设备发出的异步信号,用于向操作系统请求服务。中断事件发生时,会停止当前程序的运行,而转向中断处理程序的执行。在中断处理程序执行完成之后再回到原来的进程执行。异常是cpu执行指令的时候遇到的错误和意外情况,是cpu内......
  • 2005-text3
    2005-text3component成分,组成部分formulate构想,规划,确切地阐述revolutionary革命性的,创新的,革命的disguise伪装,掩饰v.n.unconscious无意识的,不知道的,不省人事的conscious意识到的,察觉到的,神智清醒的emotional感情的,激动的,冲动的,感人的regul......
  • Redis---数据持久化之RDB与AOF
    一、数据持久化之RDB1、RDB介绍Redis数据库文件,全称RedisDataBase,数据持久化方式之一,数据持久化默认方式,按照指定时间间隔,将内存中的数据及快照写入硬盘定义RDB文件名 dbfilename"dump.rdb"RDB指dump.rdb文件;redis数据每次存盘,如果不指定持久化的方式,数据就会默认......
  • C++课本第三章课后习题 3-8
    编写函数将华氏度转化为摄氏度#include<iostream>usingnamespacestd;doublefun(doublex){return5.0*(x-32)/9;}intmain(){doublea;cin>>a;cout<<fun(a)<<endl;}编写一个函数判别一个数,是不是质数,在主程序完成输入输出。#include<iostre......
  • MySQL高可用之MHA-02
    续目录配置vip一、keepalived方式二、通过脚本实现VIP切换总结@目录配置vip一、keepalived方式二、通过脚本实现VIP切换总结配置vipvip配置可以采用两种方式,一种通过keepalived的方式管理虚拟ip的浮动;另外一种通过脚本方式启动虚拟ip的方式(即不需要keepalived或者heartbeat类似......
  • ms17-010
    用nmap的漏洞扫描模式nmap--script=vuln192.168.178.128可以发现,靶机上扫到了4个漏洞,其中包括了MS17-010。 打开metasploit(msf很有意思的是,每次打开都会显示不同的画面。)msfconsole 搜索ms17-010相关模块,可以看到一共找到了6个不同的模块。(选项:0-5)searchms17-010......
  • MySQL中间件mycat-01
    @目录mycat基础概念Mycat安装部署mycat基础概念1、什么是MyCat一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群一个融合内存缓存技术、NoSQL技术、HDFS大数据的新......
  • 实验一 密码引擎-4-国䀄算法交叉测试
    实验一密码引擎-4-国䀄算法交叉测试小组成员:20201316陈鑫20201332杨赛一、在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码和运行结果截图(代码见附件)1.生成待加密文件2.使用OpenSSL用SM4算法加密文件生成密文密钥为0123456789012343.密文4.mak......
  • MySQL高可用-双主(keepalived)
    生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有一台MySQL服务器挂掉后,另外一台能立马接替其进行工作。MySQL的高可用方案一般有如下几种:keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC。本节主......