LeetCode 1073. 负二进制数相加(负数进制)

1. 题目

给出基数为 -2 的两个数 arr1 和 arr2,返回两数相加的结果。

数字以 数组形式 给出:数组由若干 0 和 1 组成,按最高有效位到最低有效位的顺序排列。例如,arr = [1,1,0,1] 表示数字 (-2)3 + (-2)2 + (-2)0 = -3。数组形式 的数字也同样不含前导零:以 arr 为例,这意味着要么 arr == [0],要么 arr[0] == 1。

返回相同表示形式的 arr1 和 arr2 相加的结果。两数的表示形式为:不含前导零、由若干 0 和 1 组成的数组。

示例:
输入:arr1 = [1,1,1,1,1], arr2 = [1,0,1]
输出:[1,0,0,0,0]
解释:arr1 表示 11,arr2 表示 5,输出表示 16 。提示:
1 <= arr1.length <= 1000
1 <= arr2.length <= 1000
arr1 和 arr2 都不含前导零
arr1[i]01
arr2[i]01

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/adding-two-negabinary-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

0+0 = 0
1+0 = 1
0+1 = 1
1+1 = 1*(-2)0+1*(-2)0= 2 = 1*(-2)2+1*(-2)1+0*(-2)0= (1 1 0)-2
11+1 = 1*(-2)1+1*(-2)0 + 1*(-2)0= 0

class Solution {
public:vector<int> addNegabinary(vector<int>& arr1, vector<int>& arr2) {int i = arr1.size()-1, j = arr2.size()-1, carry = 0;vector<int> ans;while(i>=0 || j>=0 || carry){if(i >= 0)carry += arr1[i--];if(j >= 0)carry += arr2[j--];ans.push_back((carry+2)%(-2));//carry 0, push_back 0//carry 1, push_back 1//carry 2, push_back 0//carry -1, push_back 1if(carry == -1)carry = 1;elsecarry /= -2;}while(ans.size()>1 && ans.back() == 0)ans.pop_back();//去除前导零reverse(ans.begin(),ans.end());return ans;}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图谱实战 | 真实世界医疗知识图谱及临床事件图谱构建

转载公众号 | DataFunTalk分享嘉宾&#xff1a;李林峰博士 医渡云 技术创新副总裁编辑整理&#xff1a;田育珍 搜狗出品平台&#xff1a;DataFunTalk导读&#xff1a;今天介绍的主题是真实世界医疗知识图谱及临床事件图谱的构建。数据源主要来自于医院的EMR、HIS、LIS、RIS等系…

Spring Cloud实战小贴士:Feign的继承特性(伪RPC模式)

通过之前发布的《Spring Cloud构建微服务架构&#xff1a;服务消费者&#xff08;Feign&#xff09;》&#xff0c;我们已经学会如何使用Spring MVC的注解来绑定服务接口。我们几乎完全可以从服务提供方的Controller中依靠复制操作&#xff0c;来构建出相应的服务接口客户端&am…

这个北航妹子也太卷了...

大家好&#xff0c;今天介绍一位好朋友&#xff0c;毕业于北航的AI算法小姐姐 rumor。rumor刚毕业时从事量化工作&#xff0c;后来转岗到互联网做算法&#xff0c;斩获了众多大厂offer&#xff0c;下面是她跳槽时整理的算法工程师面试知识点&#xff1a;就拿其中的数据结构节点…

LeetCode 1138. 字母板上的路径

1. 题目 我们从一块字母板上的位置 (0, 0) 出发&#xff0c;该坐标对应的字符为 board[0][0]。 在本题里&#xff0c;字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”]. 我们可以按下面的指令规则行动&#xff1a;如果方格存在&#xff0c;U…

开源开放 | 中药说明书实体识别数据集TCM-NER

OpenKG地址&#xff1a;http://openkg.cn/dataset/tcm-ner阿里云天池&#xff1a;https://tianchi.aliyun.com/dataset/dataDetail?dataId86819开放许可协议&#xff1a;CC BY-SA 4.0 &#xff08;署名相似共享&#xff09;贡献者&#xff1a;阿里云&#xff08;陈漠沙&#x…

【公益】开放一台Eureka注册中心给各位Spring Cloud爱好者

这是一篇博客福利&#xff01; 相信很多关注Spring Cloud的爱好者们&#xff0c;不论是读我的系列文章和书籍还是看其他朋友们写的博客佳文&#xff0c;都不可避免的启动多个项目来体验Spring Cloud带来的整套微服务架构方案。其中&#xff0c;Eureka注册中心几乎是每个试验都必…

首个视觉-语言预训练综述来了!

文 | Feilong Chen等编 | 陈萍源 | 机器之心一文了解视觉 - 语言预训练最新进展和新领域。让机器做出与人类相似的反应一直是 AI 研究不懈追求的目标。为了让机器具有感知和思考的能力&#xff0c;研究人员进行了一系列相关研究&#xff0c;如人脸识别、阅读理解和人机对话&…

LeetCode 1233. 删除子文件夹

1. 题目 你是一位系统管理员&#xff0c;手里有一份文件夹列表 folder&#xff0c;你的任务是要删除该列表中的所有 子文件夹&#xff0c;并以 任意顺序 返回剩下的文件夹。 我们这样定义「子文件夹」&#xff1a; 如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下&…

学术会议 | 欢迎注册参加第21届国际语义网大会ISWC-会议日程发布

ISWC(International Semantic Web Conference)是语义网和知识图谱领域的国际顶级学术会议&#xff0c;2022年10月23-27日&#xff0c;ISWC将通过线上的方式举办&#xff0c;汇聚全世界相关的科研工作者、从业者和领域专家&#xff0c;共同探讨、推进、塑造知识图谱与语义网技术…

Spring Cloud实战小贴士:Zuul统一异常处理(三)【Dalston版】

本篇作为《Spring Cloud微服务实战》一书关于Spring Cloud Zuul网关在Dalston版本对异常处理的补充。没有看过本书的读书也不要紧&#xff0c;可以先阅读我之前的两篇博文&#xff1a;《Spring Cloud实战小贴士&#xff1a;Zuul统一异常处理&#xff08;一&#xff09;》和《Sp…

LeetCode 1288. 删除被覆盖区间(lambda排序)

1. 题目 给你一个区间列表&#xff0c;请你删除列表中被其他区间所覆盖的区间。 只有当 c < a 且 b < d 时&#xff0c;我们才认为区间 [a,b) 被区间 [c,d) 覆盖。 在完成所有删除操作后&#xff0c;请你返回列表中剩余区间的数目。 示例&#xff1a; 输入&#xff1…

共同一作,会被认可吗?

文 | 检索宝源 | 科研大匠在我国&#xff0c;论文署名问题长期以来备受争议。尤其是共同第一作者&#xff0c;因没有统一认定标准&#xff0c;又直接影响硕博毕业、求职、考评的结果&#xff0c;而令人心神不宁。共一指的就是共同第一作者&#xff0c;也可以叫做并列第一作者&a…

Spring Cloud构建微服务架构:Hystrix监控数据聚合【Dalston版】

上一篇我们介绍了使用Hystrix Dashboard来展示Hystrix用于熔断的各项度量指标。通过Hystrix Dashboard&#xff0c;我们可以方便的查看服务实例的综合情况&#xff0c;比如&#xff1a;服务调用次数、服务调用延迟等。但是仅通过Hystrix Dashboard我们只能实现对服务当个实例的…

图谱实战 | 丁香园医疗领域图谱的构建与应用

分享嘉宾&#xff1a;付子玉 观澜网络 算法工程师编辑整理&#xff1a;孙佩霞 中国电信研究院出品平台&#xff1a;DataFunTalk导读&#xff1a;丁香园大数据组旨在为用户提供更优质的内容与服务&#xff0c;使用知识/概念图谱、预训练模型挖掘更深层次的用户意图。本文介绍了丁…

LeetCode 722. CPP删除注释(逻辑题)

1. 题目 给一个 C 程序&#xff0c;删除程序中的注释。这个程序source是一个数组&#xff0c;其中source[i]表示第i行源码。 这表示每行源码由\n分隔。 在 C 中有两种注释风格&#xff0c;行内注释和块注释。 字符串// 表示行注释&#xff0c;表示//和其右侧的其余字符应该被…

CVPR 2022 | 天大本科生论文入选!深度学习长尾分类新SOTA

文 | 丰色 发自 凹非寺 源 | 量子位&#xff08;QbitAI&#xff09;本科生搞科研到底能做出什么成绩&#xff1f;最新被CVPR 2022收录的一篇论文中&#xff0c;提供了一种新思路来解决深度学习中长尾分布数据的分类问题&#xff0c;最终实现了新SOTA。论文&#xff1a;https://…

Spring Cloud构建微服务架构:Hystrix监控面板【Dalston版】

在上一篇《服务容错保护&#xff08;hystrix断路器&#xff09;》的介绍中&#xff0c;我们提到断路器是根据一段时间窗内的请求情况来判断并操作断路器的打开和关闭状态的。而这些请求情况的指标信息都是HystrixCommand和HystrixObservableCommand实例在执行过程中记录的重要度…

学术会议 | 欢迎注册参加第11届国际知识图谱联合会议

11th International Joint Conference On Knowledge Graphs(IJCKG 2022)IJCKG(International Joint Conference On Knowledge Graphs)会议之前是国际语义技术联合会议&#xff08;the Joint International Semantic Technology Conference (JIST)&#xff09;&#xff0c;JIST …

LeetCode 396. 旋转函数(数学)

1. 题目 给定一个长度为 n 的整数数组 A 。 假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组&#xff0c;我们定义 A 的“旋转函数” F 为&#xff1a; F(k) 0 * Bk[0] 1 * Bk[1] ... (n-1) * Bk[n-1]。计算F(0), F(1), …, F(n-1)中的最大值。 注意: 可以认为 n 的值小…

敬你一杯调参人生

文 | 不会的选C源 | LA PAUSE乐泊一杯上好的手冲咖啡也是作品&#xff0c;就像算法工程师调参已久的模型&#xff0c;建筑师终于定稿的一份设计&#xff0c;一首制作人编排已久的歌曲。从第一次喝到风味开始喝咖啡的人很多&#xff0c;有的喝速溶&#xff0c;有的追星巴克新品&…