LeetCode のインタビューの質問 05.07. ペア交換

記事ディレクトリ

1. タイトル

  ペア交換。できるだけ少ない命令を使用して、整数の奇数ビットと偶数ビットを交換するプログラムを作成します (つまり、ビット 0 とビット 1、ビット 2 とビット 3 などを交換します)。

例 1:

入力: num = 2 (または 0b10)
出力: 1 (または 0b01)

例 2:

入力:数値 = 3
出力: 3

ヒント:

  • num範囲は[0, 2^30 - 1]の間であり、整数のオーバーフローは発生しません。

  ここをクリックすると質問にジャンプします

2. Java の問題解決

  比較的簡単で、コードを直接記述するだけです。

class Solution {
    
    
    public int exchangeBits(int num) {
    
    
        int ans = 0, even, odd;

        for (int i = 0; i < 32; i += 2) {
    
    
            even = 1 << i;
            odd = 1 << (i + 1);
            if ((num & even) != 0) ans |= odd;
            if ((num & odd) != 0) ans |= even;
        }

        return ans;
    }
}
  • 時間: 0 ミリ秒、Java を使用しているユーザーの 100.00% を上回ります
  • メモリ: 36.79 MB、Java を使用しているユーザーの 96.88% を上回ります

おすすめ

転載: blog.csdn.net/zheliku/article/details/133360700