Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में सरणी से लापता तत्व ढूँढने का प्रोग्राम

PHP में array_diff() और range() फ़ंक्शन्स का उपयोग करके एक संख्यात्मक सरणी में लापता (missing) तत्वों को आसानी से ढूंढा जा सकता है।

उदाहरण

<?php
function absent($my_list) {
    $my_array = range(min($my_list), max($my_list));
    return array_diff($my_array, $my_list);
}

echo "Elements missing from first array are ";
print_r(absent(array(45, 48, 51, 52, 53, 56)));

echo "Elements missing from second array are ";
print_r(absent(array(99, 101, 104, 105)));
?>

आउटपुट

Elements missing from first array are
Array ( [1] => 46 [2] => 47 [4] => 49 [5] => 50 [9] => 54 [10] => 55 )

Elements missing from second array are
Array ( [1] => 100 [3] => 102 [4] => 103 )

एल्गोरिदम:

  1. min($my_list) और max($my_list) से न्यूनतम और अधिकतम मान प्राप्त करें।
  2. range(min, max) पूर्ण क्रमिक सरणी बनाता है (जैसे 45 से 56 तक)।
  3. array_diff($full_range, $my_list) पूर्ण सरणी में वे मान लौटाता है जो मूल सरणी में नहीं हैं।

सीमाएँ और सुधार

  • केवल संख्यात्मक सरणियों के लिए: range() संख्याओं/अक्षरों के लिए काम करता है।
  • बड़े अंतराल के लिए मेमोरी: यदि min=1, max=1,000,000 तो range() बड़ी सरणी बनाएगा।
  • कुंजियाँ संरक्षित: array_diff मूल कुंजियाँ रखता है (इसलिए आउटपुट में [1], [2], [4]... दिखते हैं)।
  • कुंजियाँ रीसेट: array_values() जोड़ें।

उन्नत संस्करण (बड़े अंतराल के लिए)

<?php
function findMissingEfficient($arr) {
    $min = min($arr);
    $max = max($arr);
    $present = array_flip($arr); // O(1) लुकअप
    $missing = [];
    for ($i = $min; $i <= $max; $i++) {
        if (!isset($present[$i])) $missing[] = $i;
    }
    return $missing;
}
?>

यह O(n) समय और O(n) स्पेस में काम करता है, range() की O(range) मेमोरी से बचाता है।

स्ट्रिंग/अक्षर सरणियों के लिए

<?php
$letters = ['a', 'c', 'e'];
$full = range('a', 'e'); // ['a','b','c','d','e']
$missing = array_diff($full, $letters); // ['b','d']
?>
  1. - पायथन में 1 से N तक की सभी गायब संख्याओं को खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है जिसका आकार n है जहां सूची के सभी संख्याएं अंतराल [1, n] में मौजूद हैं कुछ तत्व दो बार दिखाई दे सकते हैं जबकि अन्य केवल एक बार। हमें [1, n] से उन सभी संख्याओं को ढूंढना है जो सूची में नहीं हैं। हमें संख्याओं को आरोही क्रम में क्रमबद्ध करके वापस कर

  1. - Python में 1 से N तक के तत्वों वाली सरणी में चार लापता संख्याएं ढूंढना

    मान लीजिए हमारे पास अलग-अलग संख्याओं की एक सरणी है जहां प्रत्येक संख्या [1, N] सीमा में है, सरणी का आकार (N-4) है और कोई एकल तत्व दोहराया नहीं गया है। तो, हम समझ सकते हैं कि 1 से N तक चार संख्याएं सरणी में गायब हैं। हमें इन 4 लापता संख्याओं को क्रमबद्ध तरीके से ढूंढना है। तो, यदि इनपुट A =[2, 8, 4,

  1. - पायथन प्रोग्राम सूची से N सबसे बड़े तत्व खोजने के लिए

    एक पूर्णांक सूची दी गई है, हमारा कार्य सूची में N सबसे बड़े तत्व ढूंढना है। उदाहरण इनपुट : [40, 5, 10, 20, 9] N = 2 आउटपुट: [40, 20] एल्गोरिदम चरण 1: एक पूर्णांक सूची और सबसे बड़ी संख्या की संख्या इनपुट करें। चरण 2: पहले सूची को N बार पार करें। चरण 3: प्रत्येक पारगमन में सबसे बड़ा मान ढूंढें और इसे