LeetCode 16.01 交换两数
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 16.01 交换两数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原題鏈接
?
交換 a,b兩個數,不開辟額外控件
解析:? 設a=甲? ?b=乙
?
a=a^b;? ? 轉換? ? a=甲^乙? ? ? ? ?b=乙
b=a^b;? ? 轉換? ?b=甲^乙^乙? ? ? 因為 乙^乙=0? ?甲^0=甲? ,所以b=甲?
a=a^b;? ? 轉換? ?a=甲^乙^甲? ? 同上所述,所以 a=乙
至此交換完畢
原理? ? N^0=N? ?N^N=0;
class Solution { public:vector<int> swapNumbers(vector<int>& numbers) {numbers[0]=numbers[0]^numbers[1];numbers[1]=numbers[0]^numbers[1];numbers[0]=numbers[0]^numbers[1];return numbers;}};?
總結
以上是生活随笔為你收集整理的LeetCode 16.01 交换两数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好听简单的网名145个
- 下一篇: 励志网名男生127个