Find the Distance Value Between Two Arrays - Easy - LeetCode
💻 coding

Find the Distance Value Between Two Arrays - Easy - LeetCode

2 min read 401 words
2 min read
ShareWhatsAppPost on X
  • 1The distance value between two arrays is the count of elements in arr1 that have no corresponding element in arr2 within a specified distance d.
  • 2The algorithm iterates through each element of arr1 and checks against all elements of arr2, resulting in a time complexity of O(m*n).
  • 3Example outputs demonstrate the function's effectiveness, with specific inputs yielding distance values of 2, 2, and 1 for different cases.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The distance value between two arrays is the count of elements in arr1 that have no corresponding element in arr2 within a specified distance d."

Find the Distance Value Between Two Arrays - Easy - LeetCode

Given two integer arrays arr1 and arr2, and the integer d, return the distance value between the two arrays.

The distance value is defined as the number of elements arr1[i] such that there is not any element arr2[j] where |arr1[i]-arr2[j]| <= d.

Example 1:

Input: arr1 = [4,5,8], arr2 = [10,9,1,8], d = 2

Output: 2

Explanation:

For arr1[0]=4 we have:

|4-10|=6 > d=2

|4-9|=5 > d=2

|4-1|=3 > d=2

|4-8|=4 > d=2

For arr1[1]=5 we have:

|5-10|=5 > d=2

|5-9|=4 > d=2

|5-1|=4 > d=2

|5-8|=3 > d=2

For arr1[2]=8 we have:

|8-10|=2 <= d=2

|8-9|=1 <= d=2

|8-1|=7 > d=2

|8-8|=0 <= d=2

Example 2:

Input: arr1 = [1,4,2,3], arr2 = [-4,-3,6,10,20,30], d = 3

Output: 2

Example 3:

Input: arr1 = [2,1,100,3], arr2 = [-5,-2,10,-3,7], d = 6

Output: 1

Constraints:

1 <= arr1.length, arr2.length <= 500

-10^3 <= arr1[i], arr2[j] <= 10^3

0 <= d <= 100

Solution:

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

namespace LeetCode.AskGif.Easy.Array
{
 public class FindTheDistanceValueSoln
 {
 public int FindTheDistanceValue(int[] arr1, int[] arr2, int d)
 {
 int count = 0;
 for (int i = 0; i < arr1.Length; i++)
 {
 bool found = false;
 for (int j = 0; j < arr2.Length; j++)
 {
 if (Math.Abs(arr1[i] - arr2[j]) <= d)
 {
 found = true;
 break;
 }
 }
 if (!found)
 {
 count++;
 }
 }

 return count;
 }
 }
}

Time Complexity: O(m*n) Where m and n are the length of the array.

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 FindTheDistanceValueSolnTests
 {
 [TestMethod]
 public void FindTheDistanceValueSoln_First()
 {
 var arr1 = new int[] { 4, 5, 8 };
 var arr2 = new int[] { 10, 9, 1, 8 };
 var d = 2;
 var output = 2;
 var res = new FindTheDistanceValueSoln().FindTheDistanceValue(arr1, arr2, d);

 Assert.AreEqual(res, output);
 }

 [TestMethod]
 public void FindTheDistanceValueSoln_Second()
 {
 var arr1 = new int[] { 1, 4, 2, 3 };
 var arr2 = new int[] { -4, -3, 6, 10, 20, 30 };
 var d = 3;
 var output = 2;
 var res = new FindTheDistanceValueSoln().FindTheDistanceValue(arr1, arr2, d);

 Assert.AreEqual(res, output);
 }

 [TestMethod]
 public void FindTheDistanceValueSoln_Third()
 {
 var arr1 = new int[] { 2, 1, 100, 3 };
 var arr2 = new int[] { -5, -2, 10, -3, 7 };
 var d = 6;
 var output = 1;
 var res = new FindTheDistanceValueSoln().FindTheDistanceValue(arr1, arr2, d);

 Assert.AreEqual(res, output);
 }
 }
}

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

AskGif

Published on 7 June 2020 · 2 min read · 401 words

Part of AskGif Blog · coding

You might also like