苹果电脑numbers快速自动求和公式 怎样用Java实现两个数的交换?
怎样用Java实现两个数的交换?
包类SwapTwoNumbers { public static void main(String[]args){ int a 10 int b 20
1)使用第三方变量(用于开发)
内部温度a
一个b
b温度
(1)使用第三方变量:A A。
1.创建一个临时变量来存储这两个值中的一个。
私有void swap(int a,int b){
内部tmp a
一个b
tmp
}
2.将两个数字相加以保存总和。
私有void swap(int a,int b){
答答答
b a - b
一个a - b
}
3.两位数XOR保存两位数状态。
私有void swap(int a,int b){
^ b
^
^ b
}
middle的编程用法?
给出了两个非空链表来表示两个非负整数。其中,它们各自的位数以逆序存储,它们的每个节点只能存储一位。
如果我们把这两个数加在一起,我们将返回一个新的链表来表示它们的和。
你可以假设除了数字0,这两个数字都不会以0开头。
示例:
输入:(2-4-3) (5-6-4)
输出:7-0-8
原因:342 465 807
想法:
问题是通过链表的将两个数相加,链表存储值的顺序相反,所以你可以从前到后依次相加,相加后的值会形成一个新的链表并返回。
需要注意的地方:
加法之和为sumVal l1val l2val进位。
现有进位为:进位sumVal/10。
当任何一个链表遍历到末尾时,也就是链表的val值为null时,该值应该设置为0。
只有当链表的值都为空且进位为0时,才能停止循环。
新节点的值是sumVal% 10。
代码:
公共列表节点addTwoNumb: 0;
int l2Val l2!空: 0;
int sumVal l1Val l2Val进位;
进位sum val/10;
ListNode sum node new ListNode(sum val % 10);
sumNode
游标sumNode
如果(l1!null)L1;
如果(l2!null)L2;
}
返回;
}
一个
2
三
四
五
六
七
八
九
10
11
12
13
14
15
16
17
18
19
20
一个
2
三
四
五
六
七
八
九
10
11
12
13
14
15
16
17
18
19
20
复杂性分析:
时间复杂度:O(max(m,n)),m和n分别是l1和l2元素的个数,最大遍历次数是l1和l2的最长长度。
空间复杂度:O(max(m,n)) 1,因为有进位,所以根表的最长值会比l1和l2的最长值长1。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。