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

JavaScript में ठीक तीन अद्वितीय दोहराव वाले तत्वों की सरणी को क्रमबद्ध करना


मान लीजिए हमारे पास संख्याओं की एक सरणी है जिसमें ठीक तीन तत्वों -1, 0 और 1 की कोई भी आवृत्ति होती है जैसे -

const arr = [1, 1, 0, -1, 1, 0, -1, 1, 0, 0, 1];

हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी एक सरणी लेता है। फ़ंक्शन को बस इस विशेष सरणी को स्थानांतरित (in-place) क्रमबद्ध करना चाहिए यानी मानों को संग्रहीत करने के लिए किसी अतिरिक्त सरणी का उपयोग किए बिना।

एकमात्र शर्त यह है कि हमारा फ़ंक्शन एक रैखिक समय फ़ंक्शन होना चाहिए (केवल एक पुनरावृत्ति का उपयोग करके)।

उदाहरण

निम्नलिखित कोड देखें:

const arr = [1, 1, 0, -1, 1, 0, -1, 1, 0, 0, 1];

const sortSpecialArray = (arr = []) => {
  const swap = (a, b) => {
    let middle = arr[a];
    arr[a] = arr[b];
    arr[b] = middle;
  };
  let left = 0;
  let middle = 0;
  let right = arr.length - 1;
  while (middle <= right) {
    if (arr[middle] === -1) {
      swap(left++, middle++);
    } else if (arr[middle] === 0) {
      middle++;
    } else if (arr[middle] === 1) {
      swap(right--, middle);
    }
  };
};

sortSpecialArray(arr);
console.log(arr);

आउटपुट

कंसोल आउटपुट निम्नलिखित है -

[
  -1, -1, 0, 0, 0,
  0, 1, 1, 1, 1,
  1
]

  1. - JavaScript में सरणी तत्वों को पुनर्व्यवस्थित करना

    समस्या JavaScript फ़ंक्शन जो पहले और एकमात्र आर्गुमेंट के रूप में literals की एक सरणी arr लेता है। इस सरणी में कुछ डुप्लिकेट आसन्न रूप से रखे गए हैं। हमारे फ़ंक्शन को सरणी के तत्वों को इस तरह पुनर्व्यवस्थित करना चाहिए कि सरणी में कोई दो तत्व समान न हों। हमारे फ़ंक्शन को पुनर्व्यवस्थित सरणी वापस करन

  1. - JavaScript में सरणी के तत्वों को पुनर्व्यवस्थित करना

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी arr को पहले और एकमात्र आर्गुमेंट के रूप में लेता है। सरणी arr हमेशा सम लंबाई की होगी। हमारे फ़ंक्शन को true वापस करना चाहिए यदि और केवल यदि इसे पुनः क्रमबद्ध करना संभव है जैसे कि arr[2 * i + 1] = 2 * arr[2 * i] हर 0 <= i < length(arr

  1. - JavaScript में तत्वों की बढ़ती आवृत्ति के आधार पर सरणी को सॉर्ट करना

    समस्याहमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी arr को एकमात्र आर्गुमेंट के रूप में लेता है। सरणी arr में डुप्लिकेट हो सकते हैं। हमारा फ़ंक्शन सरणी को इस तरह सॉर्ट करना चाहिए कि कम बार आने वाले तत्व पहले आएं, फिर बढ़ती आवृत्ति के क्रम में। यदि दो तत्व समान बार आते हैं, तो उन्हें बढ़