XOR Operation in an Array - Easy - LeetCode
💻 coding

XOR Operation in an Array - Easy - LeetCode

2 min read 329 words
2 min read
ShareWhatsAppPost on X
  • 1The XOR operation on an array is defined by nums[i] = start + 2*i for a given integer n and start.
  • 2The time complexity of the XOR operation solution is O(n), while the space complexity is O(1).
  • 3Example outputs demonstrate that the XOR of elements can yield the same result for different input configurations.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The XOR operation on an array is defined by nums[i] = start + 2*i for a given integer n and start."

XOR Operation in an Array - Easy - LeetCode

Given an integer n and an integer start.

Define an array nums where nums[i] = start + 2*i (0-indexed) and n == nums.length.

Return the bitwise XOR of all elements of nums.

Example 1:

Input: n = 5, start = 0

Output: 8

Explanation: Array nums is equal to [0, 2, 4, 6, 8] where (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8.

Where "^" corresponds to bitwise XOR operator.

Example 2:

Input: n = 4, start = 3

Output: 8

Explanation: Array nums is equal to [3, 5, 7, 9] where (3 ^ 5 ^ 7 ^ 9) = 8.

Example 3:

Input: n = 1, start = 7

Output: 7

Example 4:

Input: n = 10, start = 5

Output: 2

Constraints:

1 <= n <= 1000

0 <= start <= 1000

n == nums.length

Solution:

using System;
using System.Collections.Generic;
using System.Text;

namespace LeetCode.AskGif.Easy.Array
{
 public class XorOperationSoln
 {
 public int XorOperation(int n, int start)
 {
 int num = 0;
 int xor = 0;
 for (int i = 0; i < n; i++)
 {
 num = start + 2 * i;
 xor = xor ^ num;
 }

 return xor;
 }
 }
}

Time Complexity: O(n)

Space Complexity: O(1)

Unit Tests:

using LeetCode.AskGif.Easy.Array;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Text;

namespace CodingUnitTest.Easy.Array
{
 [TestClass]
 public class XorOperationSolnTests
 {
 [TestMethod]
 public void XorOperationSoln_First()
 {
 var n = 5;
 var start = 0;
 var expected = 8;
 
 var res = new XorOperationSoln().XorOperation(n, start);
 Assert.AreEqual(expected, res);
 }

 [TestMethod]
 public void XorOperationSoln_Second()
 {
 var n = 4;
 var start = 3;
 var expected = 8;

 var res = new XorOperationSoln().XorOperation(n, start);
 Assert.AreEqual(expected, res);
 }

 [TestMethod]
 public void XorOperationSoln_Third()
 {
 var n = 1;
 var start = 7;
 var expected = 7;

 var res = new XorOperationSoln().XorOperation(n, start);
 Assert.AreEqual(expected, res);
 }

 [TestMethod]
 public void XorOperationSoln_Fourth()
 {
 var n = 10;
 var start = 5;
 var expected = 2;

 var res = new XorOperationSoln().XorOperation(n, start);
 Assert.AreEqual(expected, res);
 }

 }
}

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

AskGif

Published on 21 June 2020 · 2 min read · 329 words

Part of AskGif Blog · coding

You might also like