Tuesday, 15 March 2011

c# - Look for overlapping values in 2 dimensional array and remove one based on x criteria -


मान लें कि मेरे पास निम्न 2 आयामी सरणी है:

  {{0,1,2 , 3,4}, {6,7,8,9}, {5,6}, {10}}   

मैं ओवरलैपिंग इंडेक्स कैसे पा सकता हूं? (6 ओवरलैप पर ध्यान दें) और एक्स मानदंडों के आधार पर एक को हटा दें?

आउटपुट होना चाहिए

  {{0,2,2,3,4}, {6 , 7,8,9}, {10}, {5}}   

या

  {{1,1,2,3,4} , {7,8,9}, {5,6}, {10}}   

एक्स पर आधारित X एक पूर्णांक मान है 0 में कोई बदलाव नहीं किया जाना चाहिए, 1 में सबसे ऊपर का उत्पादन होना चाहिए, 2 में नीचे का उत्पादन होना चाहिए।

मैं 100% यकीन है कि सभी उप arrays n से sequences एक से incrementing है।

बस एक सेट में अब तक आपके द्वारा उपयोग की गई सभी वस्तुओं का ट्रैक रखें, और फिर प्रत्येक नए इनर के लिए सरणी आप केवल पहले से उपयोग किए गए लोगों को छोड़कर सभी वस्तुएं उपज सकते हैं:

  सार्वजनिक स्थिर IEnumerable & lt; IEnumerable & lt; int & gt; & gt; फू (इंट [] [] डेटा) {var आइटम = नया हैशसेट & lt; int & gt; (); विदेशी मुद्रा (डेटा में विविध सरणी) {उपज रिटर्न सरणी। (आइटम) को छोड़कर; items.UnionWith (सरणी); }}    

No comments:

Post a Comment