इस बारे में कोई समान प्रश्न नहीं मिला। यह एक अंतिम दौर फेसबुक प्रश्न है:फेसबुक साक्षात्कार: उस ऑर्डर को ढूंढें जो एक अंगूठी में संख्या के साथ बॉक्स का चयन करके अधिकतम योग देता है, जब उसके आगे के दो नष्ट हो जाते हैं
आपको बक्से की अंगूठी दी गई है। प्रत्येक बॉक्स में गैर-ऋणात्मक संख्या होती है, डुप्लिकेट हो सकती है।
एक फ़ंक्शन/एल्गोरिदम लिखें जो आपको वह ऑर्डर देगा जिसमें आप बॉक्स चुनते हैं, जो आपको अधिकतम योग देगा।
कैच है, यदि आप एक बॉक्स का चयन करते हैं, तो इसे अंगूठी से हटा दिया जाता है, और इसके आगे के दो बक्से भी हैं (दाईं ओर और आपके द्वारा चुने गए बाईं ओर)।
इसलिए यदि मैं की
{10 3 से 8 12}
अगर मैं चयन 12, 8 और 10 नष्ट हो जाएगा और आप 3.
अधिकतम के साथ छोड़ दिया जाता है का चयन किया जाएगा एक अंगूठी है 8 पहले 10, या 10 पहले 8. 8.
मैंने बॉक्स को अपना मूल्य ले कर अपने मूल्य को फिर से असाइन करने का प्रयास किया और फिर लागत के रूप में अगले दो को घटा दिया।
तो पुराने अंगूठी है {10 3 से 8 12}
नई अंगूठी है {-5, -15, -7, -6}, और मैं उच्चतम ले जाएगा।
बहरहाल, यह निश्चित रूप से अगर आपके पास काम नहीं करता {10, 19, 10, 0}, आपके पास दो 10s लगने चाहिए, लेकिन एल्गोरिथ्म 19 और 0.
सहायता ले जाएगा कृपया?
यह गतिशील प्रोग्रामिंग की संभावना है, लेकिन मुझे नहीं पता कि कैसे।
अंगूठी किसी भी आकार का हो सकता है।
यह पहले से ही किया गया था ..., और यह मेरा साक्षात्कार नहीं था :) – webE
मैंने कहा कि यह एक फेसबुक फाइनल राउंड साक्षात्कार प्रश्न था, कभी नहीं कहा कि यह मेरा था। :) – webE
इस [प्रश्न] के समान दिखता है (http://stackoverflow.com/questions/6048025/problem-false-mirrors-can-you-help-me-to-solve)। – Ante