程序员面试金典---9
配位交换
思路:
分别保留偶数为和奇数位,然后分别右移和左移。
/** * @param {number} num * @return {number} */ var exchangeBits = function(num) { // 用来保留奇数位 const add = 0x55555555 // 用来保留偶数位 const even = 0xaaaaaaaa return (num & even) >> 1 | (num & add) << 1 };
绘制直线
思路,直接模拟就好
/** * @param {number} length * @param {number} w * @param {number} x1 * @param {number} x2 * @param {number} y * @return {number[]} */ var drawLine = function(length, w, x1, x2, y) { let res = []; let arr = []; for(let i = 0; i < 32 * length; i++) { arr.push(0); } if(x1 > x2) { let x3 = x1; x1 = x2; x2 = x3; } for(let i = 0; i < 32 * length; i++) { if(i >= w * y + x1 && i <= w * y + x2) { arr[i] = 1; } } let str = arr.join(""); // console.log('str',str.slice(0, 32)); for(let i = 0; i < 32 * length; i+=32) { let a = parseInt(str.slice(i, i+32), 2); res.push(a >> 32); } return res };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!