首页 > 其他分享 >LeetCode 1017. Convert to Base -2

LeetCode 1017. Convert to Base -2

时间:2024-08-03 11:49:39浏览次数:19  
标签:Convert get a1 a0 a3 Base base 1017 a2

原题链接在这里:https://leetcode.com/problems/convert-to-base-2/description/

题目:

Given an integer n, return a binary string representing its representation in base -2.

Note that the returned string should not have leading zeros unless the string is "0".

Example 1:

Input: n = 2
Output: "110"
Explantion: (-2)2 + (-2)1 = 2

Example 2:

Input: n = 3
Output: "111"
Explantion: (-2)2 + (-2)1 + (-2)0 = 3

Example 3:

Input: n = 4
Output: "100"
Explantion: (-2)2 = 4

Constraints:

  • 0 <= n <= 109

题解:

If it is to convert to base 2, we know append (n & 1) and then n >> 1.

For base -2, we just need to use n = -(n >> 1).

Here is the reason, 

n = (a3) * (-2)^3 + (a2) * (-2) ^ 2 + (a1) * (-2)^1+ (a0) * (-2)^0

n = (-a3)*2^3 + (a2)*2^2+ (-a1)*2^1 + (a0)*2^0

By n & 1, we get a0. by n >> 1, we move to (-a1), by n = -n, we get a1.

n= (-a3)*2^3+(a2)*2^2+(-a1)*2^1+(a0)*2^0 we get a0
-n= (a3)*2^2+ (-a2)*2^1+(a1)*2^0 we get a1
n= (-a3)*2^1+ (a2)*2^0 we get a2
-n= (a3)*2^0 we get a3

Time Complexity: O(logn).

Space: O(logn).

AC Java:

 1 class Solution {
 2     public String baseNeg2(int n) {
 3         if(n == 0){
 4             return "0";
 5         }
 6 
 7         StringBuilder sb = new StringBuilder();
 8         while(n != 0){
 9             sb.append(n & 1);
10             n = -(n >> 1);
11         }
12 
13         return sb.reverse().toString();
14     }
15 }

 

标签:Convert,get,a1,a0,a3,Base,base,1017,a2
From: https://www.cnblogs.com/Dylan-Java-NYC/p/18340293

相关文章

  • Enhancing Question Answering for Enterprise Knowledge Bases using Large Language
    本文是LLM系列文章,针对《EnhancingQuestionAnsweringforEnterpriseKnowledgeBasesusingLargeLanguageModels》的翻译。使用大型语言模型增强企业知识库的问答能力摘要1引言2相关工作3前言4方法5实验6结论摘要高效的知识管理在提高企业和组......
  • 接口文档,jwt,base64编码解码
    Ⅰ接口文档【一】接口文档了解#作为后端,接口写完了--->接口给前端使用 -登录接口:username,password,code#写接口的人负责写接口文档 -如何写?-写在哪?#通常在公司中: 1使用world编写,放在公共平台上2使用MD编写3第三方平台编写:showdoc -http......
  • JS之File对象与base64字符串之间的相互转换
    File对象有两种形态,在请求时为:控制台输出为:从formData中获得fileList对应的File对象,并转换为base64字符串,再转换回File对象,代码示例如下:constfileList=uploadFormData.get("fileList");console.log(fileList);constreader=newFileReader();reader.readAsDataURL(......
  • 使用pg_basebackup备份和恢复一个pg数据库
    创建用于备份用的用户:创建数据库备份用户:psql-Upostgres-c"CREATEUSERdbbackupWITHREPLICATIONPASSWORD'123456'"-U指定备份用户-c指定创建用户命令备份用户只需要授权:replication即可创建用于备份的目录:创建备份目录:mkdir-p/pgdata/backup/如果不是本......
  • NocoBase 社区正式上线!
    为了给大家提供一个方便的反馈、交流和学习平台,经过一段时间的筹备,NocoBase社区正式上线!点击立即访问:https://forum.nocobase.com/英文、中文、日文板块同步开放为了方便不同语言的用户无障碍交流,我们在社区里划分了语言板块。选择你最熟悉的语言板块,参与讨论吧!我在NocoBa......
  • ThinkPHP6支持金仓数据库(Kingbase)解决无法使用模型查询问题
    参考了很多前人的文章,最后只支持Db::query原生查询,不支持thinkphp数据模型方法,这在实际项目中是很难接受的,特分享出解决方案。先按照流程配置如下:1.准备工作首先确认PHP支持金仓数据库的扩展,可以去金仓官网下载,安装配置(详细配置略过……)。使用php-m命令检查,显示有pdo_kdb......
  • 大数据技术原理-Hbase的安装和应用
    摘要本实验报告详细介绍了在“大数据技术原理”课程中进行的HBase实验。实验环境基于Hadoop生态系统,包括HBase和Java。实验内容涵盖了HBase的安装、版本查询、SSH登录、Hadoop与HBase的启动与关闭,以及通过HBaseShell命令实现数据的基本操作,如表的创建、数据的插入、删除和查......
  • 【IEEE出版 | ICBASE 2020-2023 均已被 EI , Scopus检索 | 温州理工学院、加拿大圭尔
    第五届大数据、人工智能与软件工程国际研讨会(ICBASE2024)将于2024年09月20-22日在中国温州隆重举行。会议主要围绕大数据、人工智能与软件工程等研究领域展开讨论。会议旨在为从事大数据、人工智能与软件工程研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和......
  • Android开发 - (适配器)Adapter类中BaseAdapter实现类详细解析
    具体作用BaseAdapter是Android开发中一个非常重要的Adapter(适配器)基类。它提供了创建自定义适配器的基本实现,使开发者可以根据具体需求创建适用于不同视图(如ListView、GridView)的数据适配器。以下是BaseAdapter的主要作用:提供基本接口实现BaseAdapter实现了ListAd......
  • 核心(Hutool-core)类型转换Convert类
    Java常见类型转换转换为字符串:inta=1;//aStr为"1"StringaStr=Convert.toStr(a);long[]b={1,2,3,4,5};//bStr为:"[1,2,3,4,5]"StringbStr=Convert.toStr(b);转换为指定类型数组:String[]b={"1","2","3","4&q......