मध्यम 0 हल किए गए 0% स्वीकृति

नंबर सर्पिल लुकअप

एक बढ़ते हुए नंबर सर्पिल में पंक्ति और स्तंभ द्वारा मान खोजें।

आप क्या सीखेंगे

  • संख्याओं के पैटर्न में सूत्र ढूँढना
  • समस्या को परत और सम-विषम से बाँटना
  • बड़े मानों के लिए 64-बिट पूर्णांक उपयोग करना

समस्या

अनंत सर्पिल ऊपर-बाएँ सेल से शुरू होती है। पहली चार पंक्तियाँ और स्तंभ नीचे दिखाए गए हैं। इसी पैटर्न को बढ़ती हुई वर्गाकार परतों में जारी रखें। निर्देशांक 1 से शुरू होते हैं।

 1   2   9  10
 4   3   8  11
 5   6   7  12
16  15  14  13

पूरा ग्रिड बनाए बिना केवल एक सेल का मान लौटाएँ।

number_spiral(row, column) को लागू करें।

इनपुट

row: ऊपर से गिनी गई पंक्ति, जो 1 से शुरू होती है।

column: बाएँ से गिना गया स्तंभ, जो 1 से शुरू होता है।

आउटपुट

उस स्थान पर स्थित संख्या लौटाएँ।

सीमाएँ

1 ≤ row, column ≤ 1,000,000,000। मान एक साइन किए गए 64-बिट पूर्णांक में समा जाएगा।

उदाहरण

उदाहरण 1
इनपुट:
row = 3
column = 2

अपेक्षित आउटपुट:
expected = 6
इनपुट:
long long row = 3;
long long column = 2;

अपेक्षित आउटपुट:
long long expected = 6;
इनपुट:
long row = 3;
long column = 2;

अपेक्षित आउटपुट:
long expected = 6;

व्याख्या

दिखाई गई तीसरी पंक्ति में, दूसरा मान 6 है।

उदाहरण 2
इनपुट:
row = 1
column = 4

अपेक्षित आउटपुट:
expected = 10
इनपुट:
long long row = 1;
long long column = 4;

अपेक्षित आउटपुट:
long long expected = 10;
इनपुट:
long row = 1;
long column = 4;

अपेक्षित आउटपुट:
long expected = 10;

व्याख्या

चौथी वर्गाकार परत शीर्ष पंक्ति में 10 से शुरू होती है।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

Spiral square layers में बनती है, इसलिए हर cell उस layer में आता है जो बड़े coordinate से तय होती है.

संकेत 2

उस layer की parity देखकर तय करो कि values row में बढ़ती हैं या column में.

संकेत 3

ध्यान दो कि layer top-left corner से शुरू होती है या opposite corner से पहले.

अपेक्षित जटिलता

समय O(1), अतिरिक्त स्थान O(1)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।