समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पूर्णांकों की एक सरणी लेता है, गिरफ्तारी, पहले और एकमात्र तर्क के रूप में।
हम इस सरणी को एक गोलाकार सरणी मान सकते हैं, जिसका अर्थ है कि सरणी का अंतिम तत्व पहले के बाद होगा। हमारे फ़ंक्शन को गिरफ्तारी के गैर-रिक्त उप-सरणी का अधिकतम संभव योग ढूंढना और वापस करना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const arr = [2, -2, 3, -1];
आउटपुट
const output = 4;
आउटपुट स्पष्टीकरण
क्योंकि वांछित उप-सरणी [3, -1, 2]
. हैउदाहरण
const arr = [2, -2, 3, -1]; const maxSubarraySumCircular = (arr = []) => { let max = arr[0] let min = arr[0] let currentMax = max let currentMin = min let sum = arr[0] for (let i = 1; i < arr.length; i++) { currentMax = arr[i] + Math.max(currentMax, 0) max = Math.max(max, currentMax) currentMin = arr[i] + Math.min(currentMin, 0) min = Math.min(min, currentMin) sum += arr[i] } return max < 0 ? max : Math.max(max, sum - min) } console.log(maxSubarraySumCircular(arr));
आउटपुट
4