समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो क्रमशः पहले और दूसरे तर्क के रूप में शाब्दिक, arr1 और arr2 के दो सरणी लेता है।
हमारा फ़ंक्शन दोनों सरणियों में दिखाई देने वाले उप-सरणी की अधिकतम लंबाई लौटाने वाला है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const arr1 = [1, 2, 3, 2, 1]; const arr2 = [3, 2, 1, 4, 7];
आउटपुट
const output = 3;
आउटपुट स्पष्टीकरण
अधिकतम लंबाई के साथ दोहराया गया उपसरणी [3, 2, 1] है।
उदाहरण
निम्नलिखित कोड है -
const arr1 = [1, 2, 3, 2, 1]; const arr2 = [3, 2, 1, 4, 7]; const maximumLength = (arr1 = [], arr2 = []) => { const dp = new Array(arr1.length + 1).fill(0).map(() => new Array(arr2.length + 1).fill(0)) for (let i = arr1.length - 1; i >= 0; i--) { for (let j = arr2.length - 1; j >= 0; j--) { if (arr1[i] === arr2[j]) { dp[i][j] = dp[i + 1][j + 1] + 1 } else { dp[i][j] = 0 } } }; return dp.reduce((acc, items) => Math.max(acc, ...items), 0) } console.log(maximumLength(arr1, arr2));
आउटपुट
3