当前位置: 首页 > news >正文

( 位运算 ) 693. 交替位二进制数 ——【Leetcode每日一题】

❓693. 交替位二进制数

难度:简单

给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。

示例 1:

输入:n = 5
输出:true
解释:5 的二进制表示是:101

示例 2:

输入:n = 7
输出:false
解释:7 的二进制表示是:111.

示例 3:

输入:n = 11
输出:false
解释:11 的二进制表示是:1011.

提示:

  • 1 < = n < = 2 31 − 1 1 <= n <= 2^{31} - 1 1<=n<=2311

💡思路:

基础知识必知:一篇文章搞懂位运算

法一:数学

  • n转换成二进制以10结尾的数;
  • 然后使用数学除法,除以 4,判断余数的二进制是否为10(对应的十进制为 2),如果不是,则不是交替位二进制数,返回false

法二:位运算

对于 1010 这种位级表示的数,把它向右移动 1 位得到 101,这两个数每个位都不同,因此异或得到的结果为 1111

  1. 对输入 n 的二进制表示右移一位后,得到的数字再与 n 按位异或得到 a

    • 当且仅当输入 n交替位二进制数时,a 的二进制表示全为 111(不包括前导 000)。
  2. aa+1 按位与,当且仅当 a 的二进制表示全为 1 时,结果为 0

结合上述两步,可以判断输入是否为交替位二进制数

🍁代码:(Java、C++)

法一:数学
Java

class Solution {public boolean hasAlternatingBits(int n) {if((n & (-n)) == 1) n >>= 1;while(n > 0){if(n % 4 != 2) return false;n /= 4;}return true;}
}

C++

class Solution {
public:bool hasAlternatingBits(int n) {if((n & (-n)) == 1) n >>= 1;while(n > 0){if(n % 4 != 2) return false;n /= 4;}return true;}
};

法二:位运算
Java

class Solution {public boolean hasAlternatingBits(int n) {int a = (n ^ (n >>> 1));return (a & (a + 1)) == 0;}
}

C++

class Solution {
public:bool hasAlternatingBits(int n) {long a = (n ^ (n >> 1));return (a & (a + 1)) == 0;}
};

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( 1 ) O(1) O(1),仅使用了常数时间来计算。
  • 空间复杂度 O ( 1 ) O(1) O(1),使用了常数空间来存储中间变量。

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我 leetCode专栏,每日更新!

注: 如有不足,欢迎指正!

相关文章:

( 位运算 ) 693. 交替位二进制数 ——【Leetcode每日一题】

❓693. 交替位二进制数 难度&#xff1a;简单 给定一个正整数&#xff0c;检查它的二进制表示是否总是 0、1 交替出现&#xff1a;换句话说&#xff0c;就是二进制表示中相邻两位的数字永不相同。 示例 1&#xff1a; 输入&#xff1a;n 5 输出&#xff1a;true 解释&#…...

http简述

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在Web上传输数据的协议。它是Web的基础&#xff0c;使得我们能够在互联网上访问和共享信息。本文将介绍HTTP的基本概念、工作原理、请求和响应、状态码、安全性和未来发展等方面。 一、HTTP的基本概念 HTT…...

一顿饭的事儿,搞懂了Linux5种IO模型

大家好&#xff0c;我是老三&#xff0c;人生有三大难题&#xff0c;事业、爱情&#xff0c;和 ——这顿吃什么&#xff01; 人在家中躺&#xff0c;肚子饿得响&#xff0c;又到了不得不吃的时候&#xff0c;这顿饭该怎么吃&#xff1f;吃什么呢&#xff1f; Linux里有五种I…...

C#面向对象的概念

C#面向对象的概念 C#是一种面向对象的编程语言&#xff0c;面向对象编程的核心是将程序中的数据和操作封装在一个对象中。下面是一些面向对象的概念&#xff1a; 类&#xff08;Class&#xff09;&#xff1a;类是用来描述一类对象的属性和方法的模板或蓝图&#xff0c;它定义…...

探索学习和入门使用GitHub Copilot:提升代码开发的新利器

目录 引言1. 什么是GitHub Copilot&#xff1f;2. 入门使用GitHub Copilot3. GitHub Copilot的基础知识4. GitHub Copilot的应用场景结论 在最近的开发工作中&#xff0c;发现了一个比较实用的工具&#xff0c;github copilot&#xff0c;这是一款基于人工智能的代码助手工具&a…...

在字节跳动做了6年软件测试,4月无情被辞,想给划水的兄弟提个醒

先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入字节&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;之后跳槽到了有赞&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是6年的工作经验吧。 这6年之间完成了一次…...

常见信号质量问题、危害及其解决方法-信号完整性-过冲、噪声、回勾、边沿缓慢

概述 在电路设计中&#xff0c;“信号”始终是工程师无法绕开的一个知识点。不管是在设计之初&#xff0c;还是在测试环节中&#xff0c;信号质量问题都值得关注。在本文中&#xff0c;主要介绍信号相关的四类问题&#xff1a;信号过冲、毛刺&#xff08;噪声&#xff09;、回…...

Java 自定义注解及使用

目录 一、自定义注解1.使用 interface 来定义你的注解2.使用 Retention 注解来声明自定义注解的生命周期3.使用 Target 注解来声明注解的使用范围4.添加注解的属性 二、使用自定义的注解1.将注解注在其允许的使用范围2.使用反射获取类成员变量上的所有注解3.反射获取成员变量上…...

ChatGPT的强化学习部分介绍——PPO算法实战LunarLander-v2

PPO算法 近线策略优化算法&#xff08;Proximal Policy Optimization Algorithms&#xff09; 即属于AC框架下的算法&#xff0c;在采样策略梯度算法训练方法的同时&#xff0c;重复利用历史采样的数据进行网络参数更新&#xff0c;提升了策略梯度方法的学习效率。 PPO重要的突…...

JavaWeb ( 八 ) 过滤器与监听器

2.6.过滤器 Filter Filter过滤器能够对匹配的请求到达目标之前或返回响应之后增加一些处理代码 常用来做 全局转码 ,session有效性判断 2.6.1.过滤器声明 在 web.xml 中声明Filter的匹配过滤特征及对应的类路径 , 3.0版本后可以在类上使用 WebFilter 注解来声明 filter-cla…...

Notion Ai中文指令使用技巧

Notion AI 是一种智能技术&#xff0c;可以自动处理大量数据&#xff0c;并从中提取有用的信息。它能够 智能搜索&#xff1a;通过搜索文本和查询结果进行快速访问 自动归档&#xff1a;可以根据关键字和日期自动将内容归档 内容分类&#xff1a;可以根据内容的标签和内容的…...

Linux一学就会——编写自己的shell

编写自己的shell 进程程序替换 替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数 以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动 例程开始执行…...

编程练习【有效的括号】

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左…...

Android 音频开发——桌面小部件(七)

对于收音机的车机 APP 开发,一般都有配套的桌面小部件(Widget)开发,这里对小部件的具体实现就不介绍了,这里主要介绍一些桌面(Launcher)中的小部件(Widget)弹出窗口功能实现。 一、功能描述 在小部件上点击按钮,弹出一个有音源选择列表的弹窗,点击其他位置…...

常见的C++包管理

C包管理工具 Conan 是一款免费开源的 C/C语言的依赖项和包管理器 类似于python的anaconda Introduction — conan 2.0.4 documentationconan-io/conan: Conan - The open-source C and C package manager (github.com) CPM cmake集成的 mirrors / cpm-cmake / CPM.cmake GitC…...

基于yolov7开发构建学生课堂行为检测识别系统

yolov7也是一款非常出众的目标检测模型&#xff0c;在我之前的文章中也有非常详细的教程系列的文章&#xff0c;感兴趣的话可以自行移步阅读即可。 《基于YOLOV7的桥梁基建裂缝检测》 《YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程》 《基于YOLOv7融合…...

GPT-4 开始内测32k输入长度的版本了!你收到邀请了吗?

要说现在 GPT-4 最大的问题是什么&#xff1f;可能除了一时拿他没有办法的机器幻觉&#xff0c;就是卡死的输入长度了吧。尽管在一般的对话、搜索的场景里目前普通版本 GPT-4 的 8000 左右的上下文长度或许绰绰有余&#xff0c;但是在诸如内容生成、智能阅读等方面当下基础版的…...

如何用ChatGPT做新品上市推广方案策划?

该场景对应的关键词库(28个&#xff09;&#xff1a; 品牌、产品信息、新品、成分、属性、功效、人群特征、客户分析、产品定位、核心卖点、推广策略、广告、公关、线上推广、线下活动、合作伙伴、资源整合、预算、执行计划、监测、评估、微调方案、价值主张、营销策略、热点话…...

Qt之QGraphicsEffect的简单使用(含源码+注释)

文章目录 一、效果示例图1.效果演示图片3.弹窗演示图片 二.问题描述三、源码CFrame.hCFrame.cppCMainWindow.hCMainWindow.cpp 总结 一、效果示例图 1.效果演示图片 3.弹窗演示图片 二.问题描述 &#xff08;因为全是简单使用&#xff0c;毫无技巧&#xff0c;直接描述问题&a…...

前端优化-css

1.css盒子模型 标准盒子模型&#xff0c;IE盒子模型 标准盒子模型&#xff1a;margin-border-padding-content IE盒子模型&#xff1a;margin-content(border-padding-content) 如何转换&#xff1a; box - sizing: border - box; // IE盒子模型 box - sizing: content - …...

别再买错卡了!手把手教你用Arduino Uno和MFRC522模块DIY智能门禁(附完整代码和避坑指南)

从零搭建Arduino RFID门禁&#xff1a;硬件选购、代码优化与避坑全指南 第一次接触Arduino和RFID技术时&#xff0c;我被琳琅满目的硬件选择和复杂的代码搞得晕头转向。特别是当兴冲冲买回一堆组件后&#xff0c;发现卡片根本无法被识别——原来是因为忽略了频率匹配这个关键细…...

AI编程助手DeepSeek Coder:代码生成效率提升指南

AI编程助手DeepSeek Coder&#xff1a;代码生成效率提升指南 【免费下载链接】DeepSeek-Coder DeepSeek Coder: Let the Code Write Itself 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Coder 在软件开发领域&#xff0c;开发者每天面临着重复编码、多语…...

Python数据分析项目实战(044)——Pandas数据导出常用方法

版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl to_csv() 作用:将DataFrame数据导出为CSV(逗号分隔值)格式文件,是最常用的数据导出格式之一。 import pandas as pddata = {姓名: [张三, 李四<...

极验三代验证码全流程解析:从注册请求到ajax.php验证

1. 极验三代验证码技术架构解析 极验三代验证码作为当前主流的交互式安全验证方案&#xff0c;其技术架构设计体现了多重防御思想。整个验证流程采用分阶段验证机制&#xff0c;每个环节都设置了独立的安全校验点。从技术实现角度看&#xff0c;系统由前端SDK、验证逻辑引擎和风…...

3个极简功能让时间管理者实现高效时间规划:Catime计时器全场景应用指南

3个极简功能让时间管理者实现高效时间规划&#xff1a;Catime计时器全场景应用指南 【免费下载链接】Catime A tiny (995KB) but mighty timer in pure C. Supports clock, countdown, stopwatch, Pomodoro, and fully customizable tray animations (GIFs, CPU/Mem%)&#x1f…...

互联网大厂Java求职面试实录:谢飞机的三轮技术问答与深度解析

互联网大厂Java求职面试实录&#xff1a;谢飞机的三轮技术问答与深度解析 一、面试背景简介 本文模拟了某知名互联网大厂Java研发工程师岗位的面试过程&#xff0c;通过主角谢飞机与严肃面试官的真实问答&#xff0c;覆盖Java后端开发常见知识点&#xff0c;帮助读者系统梳理面…...

从洛伦兹吸引子到三体问题:用Python RK45方法探索混沌与天体物理的奇妙世界

从洛伦兹吸引子到三体问题&#xff1a;用Python RK45方法探索混沌与天体物理的奇妙世界 混沌系统与天体运动看似毫不相关&#xff0c;却共享着对初始条件极度敏感的数学本质。1963年&#xff0c;气象学家爱德华洛伦兹在简化大气对流模型时&#xff0c;意外发现了"蝴蝶效应…...

HY-Motion 1.0作品集展示:12类日常动作+8类专业运动生成效果

HY-Motion 1.0作品集展示&#xff1a;12类日常动作8类专业运动生成效果 1. 引言&#xff1a;当文字能驱动骨骼 想象一下&#xff0c;你正在为一个游戏角色设计一套连贯的格斗动作&#xff0c;或者为一个虚拟主播编排一段自然的舞蹈。传统流程需要动画师一帧一帧地调整骨骼&am…...

ArcGIS 批量出图实战:15 分钟搞定 15 省地图自动化生成

&#x1f680;ArcGIS 批量出图实战&#xff1a;15 分钟搞定 15 省地图自动化生成 ✨GISer 效率神器&#xff01;告别重复操作&#xff0c;一键批量生成省级专题地图✨ 作为 GIS 从业者&#xff0c;你是不是也经常遇到这样的场景&#xff1a;&#x1f4cb;要给十几个省份分别制作…...

中小企业如何选择适合自己的SEO软件

了解SEO软件的基本概念 在当今数字化营销时代&#xff0c;中小企业如何选择适合自己的SEO软件是一个至关重要的问题。SEO&#xff08;搜索引擎优化&#xff09;软件的核心功能是帮助企业提升在搜索引擎上的排名&#xff0c;从而增加网站的曝光率和流量。但是&#xff0c;市面上…...