[ビット演算-中級]インタビュー質問16.01。交換番号(3つの解決策:ビット演算+数学演算+リスト法)

[タイトル]
一時変数を使用せずに関数を記述し、aとbの値をnumbers = [a、b]で直接交換します。
[例]
入力:numbers = [1,2]
出力:[2,1]
[ヒント]
numbers.length == 2
[コード]
[Python]
[方法1:ビット演算]
ここに画像の説明を挿入

class Solution:
    def swapNumbers(self, numbers: List[int]) -> List[int]:
        numbers[0]^=numbers[1]
        numbers[1]=numbers[0]^numbers[1]
        numbers[0]^=numbers[1]
        return numbers

【方法2:算術演算】
ここに画像の説明を挿入

class Solution:
    def swapNumbers(self, numbers: List[int]) -> List[int]:
        numbers[0] -= numbers[1]
        numbers[1] += numbers[0]
        numbers[0] = numbers[1] - numbers[0]
        return numbers

【方法3:リスト方法】
ここに画像の説明を挿入

class Solution:
    def swapNumbers(self, numbers: List[int]) -> List[int]:
        numbers.append(numbers[0])
        numbers.pop(0)
        return numbers

おすすめ

転載: blog.csdn.net/kz_java/article/details/115275038