2011-10-21 10 views
5

हाल ही में एक साक्षात्कार में में डाला तत्व का पता लगाएं मैंने पूछा था:सूची

आप 2 सूचियों

है, तो लिस्टा listB

प्रत्येक आकार 1000 कर रहे हैं और एक ही तत्व होते हैं 1 - 1000. यदि कोई तत्व, एन सूची में जोड़ा गया है, तो आप उस तत्व के मान को कैसे निर्धारित कर सकते हैं?

मैंने सूची ए से सूची बी को घटाने के लिए सही ढंग से जवाब दिया और शेष मूल्य होगा।

फिर उसने कहा कि अगर एन को जोड़ा गया तो हमारे पास सूची बी है। आप जो मूल्य जोड़ा गया था, उसे कैसे निर्धारित करेंगे?

मैं इसका उत्तर देने में विफल रहा !!!! मुझे यह पता होना चाहिए लेकिन मैं इसके बारे में सोच नहीं सकता। उन्होंने जो संकेत दिया वह कुछ ऐसा ही था जैसा मैंने पहली समस्या में किया था।

कोई सुझाव?

+0

तत्वों {1,2,3 .... 1000} हैं? –

+1

"आकार 1000 और समान तत्व 1 - 1000" हैं: क्या इसका मतलब यह है कि प्रत्येक सूची में प्रत्येक मान 1 और 1000 के बीच एक बार होता है, या इसका मतलब यह है कि प्रत्येक सूची में 1000 तत्व होते हैं, प्रत्येक तत्व श्रेणी 1 - 1000 में होता है , दो सूचियों में एक ही तत्व होते हैं (शायद एक ही क्रम में नहीं), लेकिन डुप्लीस हो सकते हैं? यदि उत्तरार्द्ध में सूची ए के बिना, या एन को जोड़ने से पहले सूची बी देखने का मौका है, तो स्पष्ट रूप से यह जानना संभव नहीं है कि आखिरी सूची में कौन सा तत्व जोड़ा गया था। यदि पूर्व तो समस्या सरल है, उदा। सूची बी के तत्वों के योग से 500500 घटाएं। –

+0

http: // betterexplained।कॉम/लेख/तकनीक-जोड़ने-जोड़ने-संख्या-1-से-100/ – vikingosegundo

उत्तर

2

आप एक्सओआर दोनों सूचियों और जो भी नया है (एन) आप इसे प्राप्त कर सकते हैं। यह पहला सवाल का जवाब है।

+0

हाँ, यह एक अच्छा विचार है और दोनों को जोड़ने और एक-दूसरे से घटाने से कहीं बेहतर है। – segFault

2

Sum AsumA में। एक नया तत्व डालें। सूची को अब sumB में सूचीबद्ध करें। sumB से sumA घटाएं। व्हायोला एक संगीत वाद्ययंत्र है।

+0

मैं पहले व्यक्ति को जानता हूं, लेकिन मुझे दूसरा पता नहीं है। मेरे पास केवल सूची बी है। – segFault

+0

मुझे यह प्रश्न समझ गया कि आप 'सूची ए' और 'listB' को अलग नहीं रखते हैं। लेकिन आपको * कुछ * याद रखना होगा, अन्यथा यह असंभव है। तो तत्व को जोड़ने के बाद * सूची ए' * को समेटें, योग को याद रखें, फिर तत्व जोड़ने के बाद 'listB' को योग करें। इसके अलावा, @SteveJessop ने क्या कहा - आपको प्रश्न प्रारूप द्वारा पता होना चाहिए कि 'listA' का योग क्या है। – Amadan

1

नए तत्वों को सम्मिलित करते समय सूची को स्वचालित रूप से सॉर्ट नहीं किया जाता है, तो आप यह निर्धारित कर सकते हैं कि नया तत्व क्या है यदि आप जानते हैं कि सूची "जोड़ें" विधि कार्यान्वयन क्या है।

यदि सूची इसे जोड़कर नया तत्व जोड़ती है, तो आप जानते हैं कि नया तत्व सूची में अंतिम तत्व होगा।

यदि सूची पूर्व-लंबित द्वारा नया तत्व जोड़ती है, तो आप जानते हैं कि नया तत्व सूची में पहला तत्व होगा।

यदि आप सूची में तत्व डालते हैं, तो आप जानते हैं कि तत्व कहां है क्योंकि आपने स्थान निर्दिष्ट किया है।

यदि सूची यादृच्छिक रूप से इसे जोड़ने पर तत्व डालती है, तो आप भाग्य से बाहर हैं। इस मामले में आपको तुलना (मूल सूची) के रूप में उपयोग करने के लिए कुछ होना होगा।

यह एक वस्तु सिर्फ राज्य नहीं होने, लेकिन यह भी व्यवहार होने का नतीजा है।

0

यह देखते हुए कि मैं क्या कर का सबसे आधारित एसक्यूएल है:

select * 
from listb b 
left outer join lista a on (a.id = b.id) 
where (a.id is null)