. Day 8 - Challenge 1 - Intersection of Two Arrays Skip to main content

Day 8 - Challenge 1 - Intersection of Two Arrays

Finding the Intersection of Two Arrays using JavaScript

Introduction 

Arrays are an essential data structure in programming, allowing us to store and manipulate collections of elements. In many scenarios, we need to find common elements between two arrays. This process is commonly referred to as finding the "intersection" of two arrays. In this blog post, we'll explore a simple and efficient JavaScript program to find the intersection of two arrays.

The Problem 

Given two arrays, our task is to find the distinct common elements between them. In other words, we want to identify the values that appear in both arrays without any duplicates.

Approach 

We'll use a hash set to keep track of elements from one array and then iterate through the second array to identify common elements.

Here's a step-by-step breakdown of our approach:

  1. Create an empty hash set.
  2. Iterate through the first array and add each element to the hash set.
  3. Create an empty result array to store the intersection.
  4. Iterate through the second array. If the element exists in the hash set, add it to the result array and remove it from the hash set to avoid duplicate intersections.
  5. Return the result array containing the distinct common elements.

JavaScript Program

function findIntersection(nums1, nums2) {
    const set = new Set();
    const intersection = [];
    // Add elements from the first array to the hash set
    for (const num of nums1) {
        set.add(num);
    }
    // Iterate through the second array
    for (const num of nums2) {
        if (set.has(num)) {
            intersection.push(num);
            set.delete(num); // Avoid duplicates
        }
    }
    return intersection;
}

// Example usage
const array1 = [1, 2, 2, 1];
const array2 = [2, 2];
const result = findIntersection(array1, array2);
console.log(result); // Output: [2]

Demo

Array Intersection Demo

Intersection Result:


Conclusion 

Finding the intersection of two arrays is a common task in programming, and a hash set provides an efficient way to achieve this. By using a hash set to store elements from one array and then checking for their presence in the second array, we can identify common elements while avoiding duplicates. The JavaScript program provided in this blog post demonstrates a straightforward solution to the problem.

This approach has a time complexity of O(n), where n is the total number of elements in both arrays, and a space complexity of O(min(m, n)), where m and n are the lengths of the two arrays, respectively. This efficient approach makes it suitable for handling arrays of varying sizes.

Now write the same program in your favorite language in comment section. 

Other Challenges:

  1. Day 5 Challenges
  2. Day 6 Challenges 
  3. Day 7 Challenges

 

Comments

Popular posts from this blog

Connecting to Socket in React Native app

Connecting to a socket in a React Native app requires the use of a socket library that supports React Native. One popular library is socket.io-client . Here are the steps to connect to a socket using socket.io-client in a React Native app: Install socket.io-client by running the following command in your project directory: npm install socket.io-client 2. Import the library in your code: import io from 'socket.io-client'; 3. Create a socket instance by calling the io function and passing in the URL of the socket server: const socket = io('http://example.com'); Replace http://example.com with the URL of your socket server. 4. Add event listeners to the socket instance to handle incoming events: socket.on('connect', () => { console.log('Connected to socket server'); }); socket.on('event', (data) => { console.log('Received data:', data); }); Replace event with the name ...

Create app in phonegap in windows

Phonegap (Cordova) is a tool that allows creating native mobile app using HTML, CSS and Javascript. This article shows you, how to create application and deploy them to various native mobile platforms using the cordova command-line interface (CLI). Install Cordova using CLI Follow these steps to install: Download and install Node.js . Following installation, you should be able to invoke node and npm on your command line. Install the cordova module using npm utility of Node.js. The cordova module will automatically be downloaded by the npm utility.   $ npm install -g cordova Create APP: Go to the directory where you maintain your source code, and run a command such as the following: using command. Create hello app: $ cordova create hello com.example.hello HelloWorld This command will create a folder ‘HelloWorld’. All subsequent commands need to be run within the project's directory, or any subdirectories. So go to in this folder ‘cd HelloWorld’. Add the pl...

Know about the Web Socket and setup WebSocket in Javascript HTML page

  WebSockets is a protocol for providing full-duplex communication channels over a single TCP connection. It allows for real-time, two-way communication between a client and a server, which makes it ideal for web applications that require continuous updates from the server or that need to send frequent updates to the server. Here are some basic information about WebSockets: WebSockets are designed to work over a single TCP connection, which means that they are more efficient than other protocols like HTTP that require multiple connections for each request/response cycle. WebSockets use a persistent connection between the client and server, which allows for real-time communication without the need for frequent polling or long-polling requests. The WebSocket protocol uses a message-based model for sending and receiving data, which means that data is transmitted as a stream of messages rather than a series of HTTP requests and responses. WebSockets support binary data transmission, wh...