蘋果電腦numbers快速自動求和公式 怎樣用Java實(shí)現(xiàn)兩個數(shù)的交換?
怎樣用Java實(shí)現(xiàn)兩個數(shù)的交換?包類SwapTwoNumbers { public static void main(String[]args){ int a 10 int b 201)使用第三方變量
怎樣用Java實(shí)現(xiàn)兩個數(shù)的交換?
包類SwapTwoNumbers { public static void main(String[]args){ int a 10 int b 20
1)使用第三方變量(用于開發(fā))
內(nèi)部溫度a
一個b
b溫度
(1)使用第三方變量:A A。
1.創(chuàng)建一個臨時變量來存儲這兩個值中的一個。
私有void swap(int a,int b){
內(nèi)部tmp a
一個b
tmp
}
2.將兩個數(shù)字相加以保存總和。
私有void swap(int a,int b){
答答答
b a - b
一個a - b
}
3.兩位數(shù)XOR保存兩位數(shù)狀態(tài)。
私有void swap(int a,int b){
^ b
^
^ b
}
middle的編程用法?
給出了兩個非空鏈表來表示兩個非負(fù)整數(shù)。其中,它們各自的位數(shù)以逆序存儲,它們的每個節(jié)點(diǎn)只能存儲一位。
如果我們把這兩個數(shù)加在一起,我們將返回一個新的鏈表來表示它們的和。
你可以假設(shè)除了數(shù)字0,這兩個數(shù)字都不會以0開頭。
示例:
輸入:(2-4-3) (5-6-4)
輸出:7-0-8
原因:342 465 807
想法:
問題是通過鏈表的將兩個數(shù)相加,鏈表存儲值的順序相反,所以你可以從前到后依次相加,相加后的值會形成一個新的鏈表并返回。
需要注意的地方:
加法之和為sumVal l1val l2val進(jìn)位。
現(xiàn)有進(jìn)位為:進(jìn)位sumVal/10。
當(dāng)任何一個鏈表遍歷到末尾時,也就是鏈表的val值為null時,該值應(yīng)該設(shè)置為0。
只有當(dāng)鏈表的值都為空且進(jìn)位為0時,才能停止循環(huán)。
新節(jié)點(diǎn)的值是sumVal% 10。
代碼:
公共列表節(jié)點(diǎn)addTwoNumb: 0;
int l2Val l2!空: 0;
int sumVal l1Val l2Val進(jìn)位;
進(jìn)位sum val/10;
ListNode sum node new ListNode(sum val % 10);
sumNode
游標(biāo)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
復(fù)雜性分析:
時間復(fù)雜度:O(max(m,n)),m和n分別是l1和l2元素的個數(shù),最大遍歷次數(shù)是l1和l2的最長長度。
空間復(fù)雜度:O(max(m,n)) 1,因?yàn)橛羞M(jìn)位,所以根表的最長值會比l1和l2的最長值長1。