Lädt...


🔧 1346. Check If N and Its Double Exist


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

1346. Check If N and Its Double Exist

Difficulty: Easy

Topics: Array, Hash Table, Two Pointers, Binary Search, Sorting

Given an array arr of integers, check if there exist two indices i and j such that :

  • i != j
  • 0 <= i, j < arr.length
  • arr[i] == 2 * arr[j]

Example 1:

  • Input: arr = [10,2,5,3]
  • Output: true
  • Explanation: For i = 0 and j = 2, arr[i] == 10 == 2 * 5 == 2 * arr[j]

Example 2:

  • Input: arr = [3,1,7,11]
  • Output: false
  • Explanation: There is no i and j that satisfy the conditions.

Constraints:

  • 2 <= arr.length <= 500
  • -103 <= arr[i] <= 103

Hint:

  1. Loop from i = 0 to arr.length, maintaining in a hashTable the array elements from [0, i - 1].
  2. On each step of the loop check if we have seen the element 2 * arr[i] so far.
  3. Also check if we have seen arr[i] / 2 in case arr[i] % 2 == 0.

Solution:

We can use a hash table (associative array) to track the elements we have already encountered while iterating through the array. The idea is to check for each element arr[i] if its double (i.e., 2 * arr[i]) or half (i.e., arr[i] / 2 if it's an even number) has already been encountered.

Here’s a step-by-step solution:

Plan:

  1. Iterate through the array.
  2. For each element arr[i], check if we have seen 2 * arr[i] or arr[i] / 2 (if arr[i] is even) in the hash table.
  3. If any condition is satisfied, return true.
  4. Otherwise, add arr[i] to the hash table and continue to the next element.
  5. If no match is found by the end, return false.

Let's implement this solution in PHP: 1346. Check If N and Its Double Exist

<?php
/**
 * @param Integer[] $arr
 * @return Boolean
 */
function checkIfExist($arr) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Example usage
$arr1 = [10, 2, 5, 3];
$arr2 = [3, 1, 7, 11];

echo checkIfExist($arr1) ? 'true' : 'false'; // Output: true
echo "\n";
echo checkIfExist($arr2) ? 'true' : 'false'; // Output: false
?>

Explanation:

  1. Hash Table: We use the $hashTable associative array to store the elements we've encountered so far.
  2. First Condition: For each element arr[i], we check if arr[i] * 2 exists in the hash table.
  3. Second Condition: If the element is even, we check if arr[i] / 2 exists in the hash table.
  4. Adding to Hash Table: After checking, we add arr[i] to the hash table for future reference.
  5. Return: If we find a match, we immediately return true. If no match is found after the loop, we return false.

Time Complexity:

  • The time complexity is O(n), where n is the length of the array. This is because each element is processed once and checking or adding elements in the hash table takes constant time on average.

Space Complexity:

  • The space complexity is O(n) due to the storage required for the hash table.

Contact Links

If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks 😍. Your support would mean a lot to me!

If you want more helpful content like this, feel free to follow me:

...

🔧 1346. Check If N and Its Double Exist


📈 59.69 Punkte
🔧 Programmierung

🕵️ eDirectory bis 9.0 Denial of Service [CVE-2018-1346]


📈 22.98 Punkte
🕵️ Sicherheitslücken

🕵️ eDirectory bis 9.0 Denial of Service [CVE-2018-1346]


📈 22.98 Punkte
🕵️ Sicherheitslücken

💾 Red Hat Security Advisory 2018-1346-01


📈 22.98 Punkte
💾 IT Security Tools

🪟 DFN-CERT-2018-1346 Microsoft Windows: Mehrere Schwachstellen ermöglichen ua die komplette ...


📈 22.98 Punkte
🪟 Windows Server

🕵️ Sun Fire X2100m2/X2200m2 unknown vulnerability [CVE-2007-1346]


📈 22.98 Punkte
🕵️ Sicherheitslücken

🕵️ Microsoft Windows up to Server 2019 denial of service [CVE-2019-1346]


📈 22.98 Punkte
🕵️ Sicherheitslücken

🕵️ Medium CVE-2019-1346: Microsoft Windows server 2008


📈 22.98 Punkte
🕵️ Sicherheitslücken

🕵️ eDirectory up to 9.0 denial of service [CVE-2018-1346]


📈 22.98 Punkte
🕵️ Sicherheitslücken

📰 Red Hat Security Advisory 2020-1346-01


📈 22.98 Punkte
🐧 Unix Server

🕵️ CVE-2020-1346


📈 22.98 Punkte
🕵️ Sicherheitslücken

🕵️ Medium CVE-2020-1346: Microsoft Windows 10


📈 22.98 Punkte
🕵️ Sicherheitslücken

🕵️ CVE-2021-1346


📈 22.98 Punkte
🕵️ Sicherheitslücken

🕵️ CVE-2023-1346


📈 22.98 Punkte
🕵️ Sicherheitslücken

🕵️ CVE-2015-1346 | Google Chrome 40.0.2214.85 v8 memory corruption (Nessus ID 81396 / ID 195844)


📈 22.98 Punkte
🕵️ Sicherheitslücken

📰 How to check if file does not exist in Bash


📈 21.21 Punkte
🐧 Unix Server

🐧 Having trouble installing this its already downloaded but doesn't exist my teacher wont help me either


📈 19.71 Punkte
🐧 Linux Tipps

📰 Google Says Its New Quantum Chip Indicates That Multiple Universes Exist


📈 19.71 Punkte
📰 IT Security Nachrichten

📰 Huawei Mate 9 vs Porsche Design Mate 9: Double the Price, Double the Fun


📈 19.18 Punkte
📰 IT Security

📰 Huawei Mate 9 vs Porsche Design Mate 9: Double the Price, Double the Fun


📈 19.18 Punkte
📰 IT Security

📰 Call of Duty Black Ops Cold War: Double XP und Double Weapon XP am Wochenende


📈 19.18 Punkte
📰 IT Nachrichten

📰 Black Ops Cold War & Warzone: Double XP und Double Weapon XP an diesem Wochenende – Neues Update ...


📈 19.18 Punkte
📰 IT Nachrichten

📰 Mouse Double Clicks (FIXED): Why Is My Mouse Double Clicking?


📈 19.18 Punkte
🖥️ Betriebssysteme

🪟 Mouse Double Clicks (FIXED): Why Is My Mouse Double Clicking?


📈 19.18 Punkte
🪟 Windows Tipps

matomo