सख्ती से बढ़ते क्रम
एक क्रम कड़ाई से बढ़ रहा है अगर और केवल अगर arr[0]
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो संख्याओं के दो सरणियों, arr1 और arr2 को क्रमशः पहले और दूसरे तर्क के रूप में लेता है।
हम arr1 से arr2 तक किसी भी तत्व की अदला-बदली कर सकते हैं, जो समान सूचकांकों पर रहने के लिए होता है। इसका मतलब है कि हम arr1[i] को arr2[i] से स्वैप कर सकते हैं। दोनों अनुक्रमों को सख्ती से बढ़ाने के लिए हमारे फ़ंक्शन को स्वैप की न्यूनतम संख्या वापस करनी चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
आउटपुट
आउटपुट स्पष्टीकरण
क्योंकि अगर हम arr1[3] को arr2[3] से स्वैप करते हैं, तो दोनों सरणियाँ सख्ती से बढ़ती जाएंगी।
निम्नलिखित कोड है -समस्या
const arr1 = [1, 3, 5, 4];
const arr2 = [1, 2, 3, 7];
const output = 1;
उदाहरण
const arr1 = [1, 3, 5, 4];
const arr2 = [1, 2, 3, 7];
const findSwaps = (arr1 = [], arr2 = []) => {
let map = {
true: 1,
false: 0,
};
for (let i = 1; i < arr1.length; i++) {
const current = {
true: Infinity,
false: Infinity,
}
if (arr1[i] > arr2[i - 1] && arr2[i] > arr1[i - 1]) {
current.true = Math.min(
current.true,
map.false + 1,
)
current.false = Math.min(
current.false,
map.true)
}
if (arr2[i] > arr2[i - 1] && arr1[i] > arr1[i - 1]) {
current.true = Math.min(
current.true,
map.true + 1,
)
current.false = Math.min(
current.false,
map.false)
}
map = current
}
return Math.min(
map.false,
map.true)
}
console.log(findSwaps(arr1, arr2));
आउटपुट
1