- 题目:
- 代码:
public class text4 { public static void main(String[] args) { int[] arr1={1}; int[] arr2={1}; int[] arr = addNegabinary(arr1, arr2); for (int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } } public static int[] addNegabinary(int[] arr1, int[] arr2) { //始终让数组 arr1 的长度大于 arr2 if(arr2.length > arr1.length) { int[] temp = arr1; arr1 = arr2; arr2 = temp; } int temp,i,j; //从每个数组的末尾元素开始 for(i = arr1.length - 1, j = arr2.length - 1; j > -1; j--, i--) { //对应位置的元素+1 temp = arr1[i] + arr2[j]; if(temp == 2) { arr1[i] = 0; if(i > 0 && arr1[i - 1] == 1) { arr1[i - 1] = 0; continue; } else if(j > 0 && arr2[j - 1] == 1) { arr2[j - 1] = 0; continue; } temp = arr1.length - i; arr1 = addOne(arr1, i - 1); i = arr1.length - temp; arr1 = addOne(arr1, i - 2); i = arr1.length - temp; } else if(temp == 1) { arr1[i] = 1; } } i = 0; while(i < arr1.length) { if(arr1[i++] != 0) { break; } } //copyOfRange(): 将指定数组的指定范围复制到新数组中 return Arrays.copyOfRange(arr1, i - 1, arr1.length); } private static int[] addOne(int[] arr, int index) { if(index < 0) { int[] result = new int[arr.length + 1]; //arraycopy(): 将指定源数组中的数组从指定位置复制到目标数组的指定位置 System.arraycopy(arr, 0, result, 1, arr.length); result[0] = 1; return result; } if(arr[index] == 0) { arr[index] = 1; } else { arr[index] = 0; if(index > 0 && arr[index - 1] == 1) { arr[index - 1] = 0; return arr; } int temp = arr.length - index; arr = addOne(arr, index - 1); index = arr.length - temp; arr = addOne(arr, index - 2); } return arr; } }- 结果:
相关推荐
数据分析是什么?
说道“数据分析”一词,大家应该并不陌生,数据分析从字面上来理解,就是对数据做出分析然后得出一个结论,看起来浅显易懂,下面我们把这个词语分开得到的是“数据”与“分析”。“数据”的范围就很广泛了,小到一个计量数字,大到成亿级别的数据汇总,都可以称为数据;“分析”一词并不难理解,以智慧思维的方法对某一事物做出合理的解释,给出结论是为分析,一般会用到数学上的分析方法,比如统计学或者概率论等等。 1. 什么是数据分析 1) 数据分析发展背景 进入到 21 世纪以后,伴随着互联网的迅速发展,大数据应运而生,越来越多的数
Java两个二进制数求和
1.简介 在本教程中,您将学习一个Java程序,了解如何对两个二进制数求和。二进制数仅以“ 0”和“ 1”表示。没有其他数字。如果一个数字的数字不为0和1,则它不是二进制数字。我在互联网上看到很多例子,它们都只显示程序,但给出了解释。在这里,它与按位与运算符不同。它看起来像&运算符,但不是。您将在本文中得到澄清。不要跳过任何内容,也不要直接看到代码。 通常,这可以通过两种方式完成。首先,我们不使用任何Java API方法,而仅使用交换理论与逻辑设计(STLD)主题中的工程概念,而第二种方法..
Python爬虫实战(基础篇)—23—爬取微信小程序<随机目的地旅行>生成随机地址(附GUI版)
爬取微信小程序<随机目的地旅行>生成随机地址
1073. 负二进制数相加
力扣刷题记录
第18届全国大学生智能汽车竞赛四轮车控制策略深度解析:从舵机PID到速度闭环
本文深度解析了第18届全国大学生智能汽车竞赛中四轮车的核心控制策略。从舵机PID方向控制的基础原理与机械校准入手,详细阐述了误差计算、PD控制等关键环节;进而深入探讨了基于编码器的速度闭环控制,包括增量式PI算法与速度决策逻辑。文章结合实战经验,提供了方向环与速度环的协同调参思路与避坑指南,旨在帮助参赛者构建稳定、高效的智能车控制系统。
【开关电源】开关电源实战经验分享
开关电源原理设计、Layout设计经验分享
二进制求和-力扣67-java
java实现二进制求和-力扣67
【论文阅读】LIME:Low-light Image Enhancement via Illumination Map Estimation(笔记最全篇)
文章目录AbstractIntroductionContributionMethodSpeed-up Method(1):ALM子问题 T子问题 G子问题 Z和μ\muμSpeed-up Method(2):权重变量实验conclusion 今天要整理的一篇论文是使用传统的方法解决低照度的问题,Guo等人于2016年发表在IEEE上,论文《LIME:Low-light Image Enhance...
负二进制数相加
这个题其实要明白这个二进制的转换,就可以做出来了,我刚开始想的是直接转换成十进制,然后最后再相加起来,然后再转成二进制,这样最开始做的话我也不知道怎么错了,因为力扣这个不好测试嘛,所以就去看了题解,那么题解是这样说的。而当sum = 2的时候我们就好向前减一,那么就c = -1,而当sum = -1时,c = 1,sum = 1;我们将俩个数组相加,满足sum = a + b + c ,c是进位标志,会得到以下数据:1 , 2 , 0。那么明白这个道理之后就不用,就可以代码实现了。
基于Simulink的永磁同步电机三闭环(位置/速度/电流)控制仿真
本文详细介绍了基于Simulink的永磁同步电机三闭环控制系统设计与实现方法。系统采用位置环、速度环、电流环的三层嵌套结构,通过坐标变换(Clark/Park)实现解耦控制,达到精密定位目的。文章包含完整的建模步骤:从主电路搭建、三环PID设计到坐标变换与SVPWM调制实现,并提供了核心控制算法的MATLAB代码。通过工业机械臂关节场景验证,系统在阶跃响应(稳态误差0.002°)、正弦跟踪(误差0.008°)和抗扰动性能(恢复时间0.05s)方面表现优异。最后还提出了前馈补偿、扰动观测器等优化方向。该方案适
支付宝域名如何加入白名单(扫码老是弹窗)
支付宝扫码之后,遇到非支付宝官方网页,请确认是否继续访问弹窗,问题解决办法。本章教程提供解决办法,亲测有效。
JAVA程序设计:负二进制数相加(LeetCode:1073)
给出基数为 -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 组成的数组...
★教程1:matlab学习教程入门100例目录
★基础入门 1.为什么要学习MATLAB 2.MATLAB安装 持续更新....... ★MATLAB基础编程语言熟悉
LeetCode 1073:负二进制数相加----java实现
给出基数为-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 组成的数组。 示例 1:
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
【每日一题/数学模拟题/进位算术】1073. 负二进制数相加
给出基数为 -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 组成的数组。
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
LeetCode解法汇总1073. 负二进制数相加
2:设置local[index] = 0,并且 local[index + 1]++;* 3:设置local[index] = 1,并且 local[index + 1]++;* 如果local[index + 1] >= 2 && local[index + 2] >= 1时,可以抵扣一次。* 每次计算的时候,把arr1中index位的值,把arr2中index位的值,把local中index位的值相加。两数的表示形式为:不含前导零、由若干 0 和 1 组成的数组。,返回两数相加的结果。
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
python输入二进制数_python 二进制数相加
def add_binary_nums(x,y):max_len = max(len(x), len(y))x = x.zfill(max_len)y = y.zfill(max_len)result = ''carry =for i in range(max_len-, -, -):r = carryr += if x[i] == '' elser += if y[i] == '' else...
java 自习室 day 25
负二进制数相加
题1073、进制数相加
一、题目1 二、思路 非常简单,逐位相加,就行了。 需要进行注意的是,这个进位是一次进两位,因为2n-1 = 2n - 2n-1 三、代码 import java.util.Arrays; public class T1073 { public T1073(){ // //1 1 0 0 // int[] arr1 = {1, 0 }; // ...
Leetcode每日随机2021/4/16
题 思 又来数学题啊,这打死我也做不出来啊,5种进位情况分类讨论,真有你的。 思路参考自此题解,这位老哥直接给5中分类画了个表,很清楚。 代码 class Solution { public int[] addNegabinary(int[] arr1, int[] arr2) { if (arr1.length == 1 && arr1[0] == 0) { return arr2; } if (arr2.length == 1 && arr2
Weekly Contest 139
1071.Greatest Common Divisor of Strings For stringsSandT, we say "TdividesS" if and only ifS = T + ... + T (Tconcatenated with itself 1 or more times) Return the largest stringXsuch tha...
力扣博文链接
模拟 13 罗马数字转整数 989 数组形式的整数加法 8 字符串转换整数 (atoi) 59 螺旋矩阵 II 67 二进制求和 319 灯泡开关 134 加油站 暴力 11 盛最多水的容器 22 括号生成 221 最大正方形 栈与队列 921 使括号有效的最少添加 150 逆波兰表达式求值 ...
67. 二进制求和
67. 二进制求和
负二进制数相加【力扣1073】
解释为啥进位的时候carry要等于1:sum大于等于10的时候,说明超出了第i位的表示范围,必须向高位i+1进位。此时第i位表示的数换成十进制是sum*10^i=(sum-10)*10^i +最初看到这题的时候,我很懵逼,世上咋还会有基数是负数的情况?,10*10^i是超出部分,这部分无非就是向i+1位进1。
螺旋矩阵 III(failed)
在 R 行 C 列的矩阵上,我们从 (r0, c0) 面朝东面开始 这里,网格的西北角位于第一行第一列,网格的东南角位于最后一行最后一列。 现在,我们以顺时针按螺旋状行走,访问此网格中的每个位置。 每当我们移动到网格的边界之外时,我们会继续在网格之外行走(但稍后可能会返回到网格边界)。 最终,我们到过网格的所有 R * C 个空间。 按照访问顺序返回表示网格位置的坐标列表。 示例...
java两个二进制数求和_【JAVA算法】简单-二进制求和
算法虽难,循序渐进,督促自己,总有进步;本博文仅为了督促自己学习算法,如有遗漏或错误之处,请不吝指教;题目给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"解题方案:1.使用JAVA API简单方法算法...


5432



被折叠的 条评论
为什么被折叠?



