একটি উপাদান যা দুটি অ্যারে পৃথক হয়। কীভাবে এটি দক্ষতার সাথে সন্ধান করবেন?


22

আমি একটি কোডিং সাক্ষাত্কারের জন্য প্রস্তুত করছি এবং আমি সত্যিই এই সমস্যাটি সমাধানের সবচেয়ে কার্যকর উপায়টি বুঝতে পারি না।

ধরা যাক আমাদের দুটি অ্যারে রয়েছে এমন সংখ্যার সমন্বয়ে থাকে যা অকারিবদ্ধ হয়। অ্যারে 2 এ এমন একটি সংখ্যা রয়েছে যা অ্যারে 1 টি করে না। উভয় অ্যারে এলোমেলোভাবে নম্বর রয়েছে, একই ক্রমে বা একই সূচকগুলিতে অগত্যা নয়। উদাহরণ স্বরূপ:

অ্যারে 1 [78,11, 143, 84, 77, 1, 26, 35 .... n]

অ্যারে 2 [11,84, 35, 25, 77, 78, 26, 143 ... 21 ... n + 1]

পার্থক্যের সংখ্যাটি খুঁজে পাওয়ার জন্য দ্রুততম অ্যালগরিদম কী? তার চলমান সময় কি? এই উদাহরণে, আমরা যে সংখ্যাটি খুঁজছি তা 21 হবে।

আমার ধারণাটি অ্যারে 1 দিয়ে চালানো হবে এবং অ্যারে 2 থেকে সেই মানটি মুছবে। আপনি শেষ না হওয়া অবধি আইট্রেট করুন। এটি চলমান সময় প্রায় হওয়া উচিত ?O(nlogn)


@ জ্যান্ডভোরাক আপনার প্রতিক্রিয়াগুলির জন্য আপনাকে ধন্যবাদ আমি দেরি করেছিলাম এবং এটি পোস্ট করার পরে ঘুমিয়ে পড়েছিলাম। অ্যারেটি বাছাই করা হয়েছে এবং সমস্ত আইটেম উভয় অ্যারেতে এলোমেলো সূচীতে প্রদর্শিত হবে।
কনস্টান্টিনো স্পারাকিস

@ কনস্ট্যান্টিনোসাপারাকিস: এই ব্যাখ্যাটি উত্তরগুলি অকার্যকর করে যা ধরে নিয়েছে যে উভয় অ্যারে একই পদে উপাদান রয়েছে।
মারিও সেরভেরা


@ পাপারাজ্জি কেবল মেটা সফ্টওয়্যার ইঞ্জিনিয়ারিং-এ পড়ার সমাধান খুঁজছিলেন যা সমাধান পেতে কোথায় গিয়েছিল তবে সেই সময় আমি সিএস ফোরাম সম্পর্কে জানতাম না। আমি এটি পরিষ্কার করতে মোডগুলিকে অবহিত করেছি।
কনস্টান্টিনো স্পারাকিস

@ পাপারাজ্জি কি কোনও মেটা পোস্ট ব্যাক আপ করছেন? আমি ব্যক্তিগতভাবে সেই নীতিটি কার্যকরভাবে প্রয়োগ করার কোনও উপায় দেখতে পাচ্ছি না।
djechlin

উত্তর:


30

আমি বিভিন্ন চলমান সময় সহ এই সমস্যাটি সমাধানের চারটি প্রধান উপায় দেখতে পাচ্ছি:

  • সমাধান: এটি আপনার প্রস্তাব দেওয়া সমাধান। দ্রষ্টব্য, যেহেতু অ্যারেগুলি সাজাবিহীন, তাই মোছার ক্ষেত্রে রৈখিক সময় লাগে। আপনি এন মুছে ফেলুন; অতএব, এই অ্যালগরিদমটি চতুর্ভুজ সময় নেয়।O(n2)n

  • সমাধান: অ্যারেগুলি পূর্বে সাজান; তারপরে স্বতন্ত্র উপাদান সনাক্ত করতে একটি রৈখিক অনুসন্ধান করুন। এই সমাধানে, চলমান সময় বাছাইয়ের ক্রিয়াকলাপ দ্বারা প্রভাবিত হয়, সুতরাং O ( n)O(nlogn) উপরের আবদ্ধ।O(nlogn)

আপনি যখন কোনও সমস্যার সমাধান শনাক্ত করেন, আপনার সর্বদা নিজেকে জিজ্ঞাসা করা উচিত: আমি কি আরও ভাল করতে পারি? এই ক্ষেত্রে, আপনি পারেন ডেটা স্ট্রাকচারের একটি চতুর ব্যবহার করে। মনে রাখবেন যে আপনাকে যা করতে হবে তা হ'ল একটি অ্যারের পুনরাবৃত্তি করা এবং অন্য অ্যারেতে পুনরাবৃত্তি করা। কোন ধরণের ডেটা স্ট্রাকচার আপনাকে (প্রত্যাশিত) ধ্রুবক সময়ে লুক্কুল করার অনুমতি দেয়? আপনি সঠিক অনুমান করেছেন: একটি হ্যাশ টেবিল

  • সমাধান (প্রত্যাশিত): প্রথম অ্যারেটি পুনরাবৃত্তি করুন এবং উপাদানগুলিকে একটি হ্যাশ টেবিলের মধ্যে সঞ্চয় করুন; তারপরে, হ্যাশ টেবিলের প্রতিটি উপাদান সন্ধান করে দ্বিতীয় অ্যারেতে লিনিয়ার স্ক্যান করুন। হ্যাশ সারণীতে পাওয়া যায় না এমন উপাদানটি ফিরিয়ে দিন। এই লিনিয়ার-সময় সমাধান যে কোনও ধরণের উপাদানগুলির জন্য কাজ করে যা আপনি একটি হ্যাশ ফাংশনে পাস করতে পারেন (যেমন, এটি স্ট্রিংগুলির অ্যারেগুলির জন্য একইভাবে কাজ করবে)।O(n)

আপনি যদি উচ্চ-গন্ডী গ্যারান্টি চান এবং অ্যারেগুলি কঠোরভাবে পূর্ণসংখ্যার সমন্বয়ে গঠিত, তবে সবচেয়ে ভাল সমাধানটি হ'ল, টোবি আলাফিনের প্রস্তাবিত সমাধান (যদিও এই সমাধানটি আপনাকে দ্বিতীয় অ্যারেতে পৃথক হওয়া উপাদানটির সূচি দেয় না) :

  • সমাধান (গ্যারান্টিযুক্ত): প্রথম অ্যারের উপাদানগুলি যোগ করুন। তারপরে, দ্বিতীয় অ্যারের উপাদানগুলি যোগ করুন। অবশেষে, বিয়োগফল সম্পাদন করুন। নোট করুন যে এই সমাধানটি এমন কোনও ডেটা টাইপের ক্ষেত্রে সাধারণীকরণ করা যেতে পারে যার মানগুলি স্থির-দৈর্ঘ্যের বিট স্ট্রিং হিসাবে উপস্থাপিত হতে পারে,বিটওয়াইস এক্সওআর অপারেটরকেধন্যবাদ। ইলমারি করোনেনেরউত্তরেএটি পুরোপুরি ব্যাখ্যা করা হয়েছে। O(n)

শেষ অবধি, আরেকটি সম্ভাবনা (পূর্ণসংখ্যার অ্যারের একই অনুমানের অধীনে) হ'ল গণনা বাছাইয়ের মতো লিনিয়ার-টাইম বাছাইকরণ অ্যালগরিটিহম ব্যবহার করা। এটি ( এন) থেকে বাছাই-ভিত্তিক সমাধানের চলমান সময়কে হ্রাস করবে to O ( n )O(nlogn)O(n)


4
সংখ্যাগুলি যথেষ্ট পরিমাণে বড় হয়ে গেলে যোগফলটি লিনিয়ার হয় না।
সার্জে বোর্স

9
সামিংয়ের অ্যালগরিদম সম্পর্কে একটি দুর্দান্ত বিষয় হ'ল এটি কোনও আবেলীয় গোষ্ঠীর সাথে কাজ করে, কেবল পূর্ণসংখ্যার সাথে নয় (সর্বাধিক উল্লেখযোগ্যভাবে, uint64সিসি @ জারজ)।
জন ডিভোরাক

6
@ আবদুল বিষয়টি হ'ল যদি আপনার পূর্ণসংখ্যাগুলি খুব বড় হয় তবে আপনি আর করার ভান করতে পারবেন না । আমি বিশ্বাস করি যে জটিলতা O ( n ln n ) এ বেড়ে যায় যদি আপনি এটির জন্য অ্যাকাউন্ট করেন। সাধারণ সংযোজনের পরিবর্তে এক্সওআর ব্যবহার করা সলভ করে, যদিও এখনও নির্বিচারে সংখ্যক ইনপুটটিতে অনুমতি দেয়। O(n)O(nlnn)
জন ডিভোরাক

2
@ জনডভোরাক না, এটি হয় না। আপনি ধরে নিচ্ছেন যে অ্যাবেলিয়ান গোষ্ঠীতে সংজ্ঞায়িত অপারেশনটি ধ্রুব সময় নেয়। এটি কেবল ধরে নেওয়া যায় না।
ইউটিএফ-8

2
@ ইউটিএফ -8 আমি এটি ধরে নিচ্ছি না। তবে এটি সীমাবদ্ধ গোষ্ঠীগুলিতে (uint64), এবং ইন-প্লেস ডিজিট-ভিত্তিক সংযোজন ( -এর যোগ) বাহ্যিক-স্থানের অপারেণ্ডের আকারে রৈখিক। তাই, এই ধরনের দলে দলে সমষ্টি কম্পিউটিং হয় operands মোট আকার রৈখিক সময়। Znd
জন ডিভোরাক

16

পার্থক্য অফ অঙ্কের সমাধান দ্বারা প্রস্তাবিত টবি এবং মারিও আসলে যার জন্য আমরা একটি (নির্দিষ্ট-সময়) বাইনারি অপারেশন বর্ণনা করতে পারেন অন্য কোন ডাটা টাইপ করার সাধারণ যাবে হয় যে:Θ(n)

  • মোট , এই ধরনের যে কোনো মানের জন্য এবং , একটি সংজ্ঞায়িত করা হয় এবং একই ধরনের (অথবা এটা কিছু উপযুক্ত supertype, যার জন্য অপারেটর অন্তত এখনও সংজ্ঞায়িত করা হয়);abab
  • সহযোগী , যেমন ;a(bc)=(ab)c
  • পরিবর্তনমূলক , যেমন ; এবংab=ba
  • cancellative একটি বিপরীত অপারেটর অস্তিত্ব আছে, যেমন যে মাফিক ( একটি ) = একটি । প্রযুক্তিগতভাবে, এই বিপরীতমুখী অপারেশনটি অগত্যা অবিচ্ছিন্নভাবে থাকাও প্রয়োজন না, যতক্ষণ না "বিয়োগ" দুটি পরিমাণের এন উপাদানগুলির প্রত্যেকের ( এন ) সময়ের চেয়ে বেশি সময় লাগে না ।(ab)b=anO(n)

(প্রকারটি যদি কেবলমাত্র স্বতন্ত্র মানের একটি সীমাবদ্ধ পরিমাণ নিতে পারে, তবে এই বৈশিষ্ট্যগুলি এবেলিয়ান গোষ্ঠীতে পরিণত করার জন্য যথেষ্ট ; এমনকি যদি না হয়, তবে এটি কমপক্ষে একটি পরিবর্তনীয় বাতিল বাতিল সেমিগ্রুপ হবে ))

যেমন একটি অপারেশন ব্যবহার , আমরা একটি অ্যারের "সমষ্টি" define করতে একটি = ( একটি 1 , একটি 2 , ... , একটি এন ) হিসাবে ( a=(a1,a2,,an) আরও একটি অ্যারে দেওয়া বি = ( বি 1 , বি 2 , , বি এন , বি এন + 1 ) এর সাথে একটি প্লাস এক অতিরিক্ত উপাদান x এর সমস্ত উপাদান রয়েছে, আমাদের এভাবে রয়েছে (

(a)=a1a2an.
b=(b1,b2,,bn,bn+1)ax , এবং তাই আমরা কম্পিউটিং দ্বারা এই অতিরিক্ত উপাদান পেতে পারবেন: এক্স = ( (b)=(a)x
x=(b)(a).

উদাহরণস্বরূপ, যদি অ্যারে মান পূর্ণসংখ্যা, তারপর উপরন্তু (অথবা পূর্ণসংখ্যা মডুলার উপরন্তু সসীম দৈর্ঘ্যের ইন্টিজার ধরনের জন্য) অপারেটর হিসেবে ব্যবহার করা যাবে , বিপরীত অপারেশন হিসাবে বিয়োগ সঙ্গে । অন্যথা, জন্য কোন ডাটা টাইপ যার মান নির্দিষ্ট দৈর্ঘ্যের বিট স্ট্রিং হিসাবে প্রতিনিধিত্ব করা যেতে পারে, আমরা ব্যবহার করতে পারি XOR যাও, bitwise উভয় হিসাবে এবং

আরও সাধারণভাবে, আমরা এমনকি বিভাজ্য দৈর্ঘ্যের স্ট্রিংগুলিতে বিটওয়াইজ এক্সওআর পদ্ধতিটি প্রয়োগ করতে পারি, প্রয়োজনীয় দৈর্ঘ্য পর্যন্ত প্যাডিং করে যতক্ষণ না শেষ পর্যন্ত প্যাডিংগুলি বিপরীতভাবে মুছে ফেলার কিছু উপায় থাকে।

কিছু ক্ষেত্রে, এটি তুচ্ছ। উদাহরণস্বরূপ, সি-স্টাইলের নাল টার্মিনেটেড বাইট স্ট্রিংগুলি স্পষ্টভাবে তাদের নিজস্ব দৈর্ঘ্যটি এনকোড করে, সুতরাং তাদের জন্য এই পদ্ধতিটি প্রয়োগ করা ন্যূনতম: দুটি স্ট্রিং জোড়িং করার সময়, দৈর্ঘ্যের মিলটি তৈরি করতে নাল বাইটের সাথে সংক্ষিপ্ত একটিকে প্যাড করুন এবং এর থেকে অতিরিক্ত কোনও ট্রিলিং নালগুলি ট্রিম করুন from চূড়ান্ত ফলাফল। লক্ষ্য করুন অন্তর্বর্তী XOR যাও-সমষ্টি স্ট্রিং পারেন নাল ধারণ বাইট, যদিও, তাই আপনি তাদের দৈর্ঘ্য স্পষ্টভাবে সংরক্ষণ করতে হবে (কিন্তু আপনি যদি শুধুমাত্র একটি বা সর্বাধিক তাদের দুটি প্রয়োজন হবে)।

1001232বাইট দীর্ঘ, আমরা প্রতিটি স্ট্রিংয়ের দৈর্ঘ্য 32-বিট পূর্ণসংখ্যার হিসাবে এনকোড করতে পারি এবং স্ট্রিংটিতে এটি প্রেন্ডেন্ড করতে পারি। অথবা আমরা কিছু উপসর্গ কোড ব্যবহার করে নির্বিচারে স্ট্রিং দৈর্ঘ্য এনকোড করতে পারি এবং স্ট্রিংগুলিতে সেগুলি প্রিপেন্ড করতে পারি। অন্যান্য সম্ভাব্য এনকোডিংগুলিও বিদ্যমান।

Θ(n)

একমাত্র সম্ভাব্য জটিল অংশটি হ'ল, বাতিলকরণের কাজ করার জন্য, প্রতিটি মানের জন্য আমাদের একটি অনন্য ক্যানোনিকাল বিটস্ট্রিং উপস্থাপনা চয়ন করতে হবে, যা দু'টি অ্যারের ইনপুট মানগুলি দেওয়া যেতে পারে তবে এটি কঠিন (প্রকৃতপক্ষে সম্ভাব্য এমনকি গণ্যও অনস্বীকার্য) হতে পারে বিভিন্ন সমতুল্য উপস্থাপনা। এটি অবশ্য এই পদ্ধতির নির্দিষ্ট দুর্বলতা নয়; এই সমস্যা সমাধানের অন্য কোনও পদ্ধতিও যদি ব্যয় করতে পারে যদি ইনপুটটিতে এমন মান থাকতে পারে যার সমতুল্যতা অনস্বীকার্য।


বাহ খুব আকর্ষণীয় এটি গ্রহণ। আপনাকে ধন্যবাদ @ ইলমারি কারোনেন
কনস্টান্টিনো স্পারাকিস

14

আমি এটি টবির উত্তরের মন্তব্য হিসাবে পোস্ট করব, তবে আমার সুনাম এখনও নেই।

প্রতিটি তালিকার যোগফল গণনা করার বিকল্প হিসাবে (বিশেষত যদি তারা বড় তালিকাগুলি থাকে বা খুব বেশি সংখ্যক থাকে যা সংক্ষিপ্তের সময় আপনার ডেটা প্রকারকে উপচে ফেলে পারে) আপনি এর পরিবর্তে জোর ব্যবহার করতে পারেন।

প্রতিটি তালিকার কেবলমাত্র জোর-যোগ (যেমন x [0] ^ x [1] ^ x [2] ... x [n]) গণনা করুন এবং তারপরে এই দুটি মানটি xor করুন। এটি আপনাকে বহির্মুখী আইটেমটির মান দেবে (তবে সূচি নয়)।

এটি এখনও ও (এন) এবং ওভারফ্লো সহ যে কোনও সমস্যা এড়ানো যায়।


3
আমি এক্সওআরও ব্যবহার করব, কারণ এটি কিছুটা পরিষ্কার বলে মনে হচ্ছে, তবে ন্যায্য কথা, যতক্ষণ না আপনি যে ভাষাটি এটিকে প্রয়োগ করছেন তাতে মোড়ক দিয়ে ওভারফ্লো সমর্থন করে।
মার্টিন এন্ডার

14

উপাদান = সমষ্টি (অ্যারে 2) - যোগফল (অ্যারে 1)

আমি আন্তরিকভাবে সন্দেহ করি এটি সর্বাধিক অনুকূল অ্যালগরিদম। তবে এটি সমস্যা সমাধানের অন্য উপায় এবং এটি সমাধানের সহজতম উপায়। আশা করি এটা সাহায্য করবে.

যুক্ত উপাদানগুলির সংখ্যা যদি একের বেশি হয় তবে এটি কাজ করবে না।

আমার উত্তরের সবচেয়ে ভাল, সবচেয়ে খারাপ এবং গড় কেসের জন্য একই রান টাইম জটিলতা রয়েছে,

সম্পাদনা করুন
কিছু চিন্তাভাবনার পরে, আমি মনে করি আমার উত্তরটি আপনার সমাধান।

nn11=n12=n+11=n

2n121=1

2n1+1=2n

Θ(n)

সম্পাদনা:
ডেটা ধরণের ক্ষেত্রে কিছু সমস্যার কারণে, রেফুর পরামর্শ অনুসারে একটি এক্সওআর রাশি আরও উপযুক্ত হবে।


মনে রাখবেন যে আপনার মানগুলি যদি ভাসমান হয় তবে এই পদ্ধতিটি সঠিক উত্তর দিতে পারে না, কারণ সংখ্যার যোগফল রাউন্ডঅফ ত্রুটিগুলি প্রবর্তন করতে পারে। এটি পূর্ণসংখ্যার মানগুলির জন্য কাজ করবে, তবে শর্ত থাকে যে ক) আপনার পূর্ণসংখ্যার ধরণটি ওভারফ্লোতে র‌্যাপের চারপাশের আচরণের ভালভাবে সংজ্ঞা দিয়েছে, বা খ) আপনি পরিমাণগুলি কোনও প্রকারের ভেরিয়েবলের মধ্যে পর্যাপ্ত পরিমাণে সংরক্ষণ করতে পারেন যা তারা উপচে পড়তে পারে না।
ইলমারি করোনেন

রুবির "বিগনাম" শ্রেণি সম্ভবত এটি পরিচালনা করতে পারে।
টবি আলাফিন

আপনার অ্যারেতে উদাহরণস্বরূপ স্ট্রিংগুলি রয়েছে বা অর্থপূর্ণভাবে যুক্ত করা যায় না এমন কিছু সম্পর্কে এটি কার্যকরভাবে কাজ করে না।
gnasher729

হ্যাঁ, আমি বুঝতে পেরেছি। 'এক্সওআর' ব্যবহার সম্পর্কে কী? এটি কি ভাসমানদের জন্য কাজ করবে?
টবি আলাফিন

হ্যাঁ এবং এটিও নির্দেশক এবং সাধারণভাবে কোনও নির্দিষ্ট সংখ্যক বিট নিয়ে থাকে। অনেক ভাষা এটিকে সমর্থন করে না, তবে এটি কোনও মৌলিক সমস্যা নয়। মডুলার সংযোজন / বিয়োগ একই ক্ষেত্রে কাজ করবে।
হ্যারোল্ড

1

ধরে নিই যে অ্যারে 2 তৈরি করা হয়েছিল অ্যারে 1 নিয়ে এবং কোনও উপাদান এলোমেলো স্থানে ,ুকিয়ে দিয়ে বা অ্যারে 1 তৈরি করা হয়েছিল অ্যারে 2 নিয়ে এবং একটি এলোমেলো উপাদান মুছে ফেলে।

যদি সমস্ত অ্যারের উপাদানটি স্বতন্ত্র হওয়ার গ্যারান্টিযুক্ত হয় তবে সময়টি O (ln n)। আপনি অবস্থানগুলি এন / 2 এর সাথে তুলনা করুন। যদি তারা সমান হয় তবে অতিরিক্ত উপাদান n / 2 + 1 থেকে অ্যারের শেষ পর্যন্ত হয়, অন্যথায় এটি 0 থেকে এন / 2 পর্যন্ত হয়। ইত্যাদি।

যদি অ্যারে উপাদানগুলি পৃথক হওয়ার গ্যারান্টিযুক্ত না থাকে: আপনি অ্যারে 1 তে 1 নম্বরের চেয়ে আরও বেশি গুণতে পারতেন এবং 2 সংখ্যাটি অ্যারে 2-এ যে কোনও জায়গায় sertedোকানো হত সেই ক্ষেত্রে আপনি 2 নম্বরটি সব না দেখেই জানতে পারবেন না অ্যারের উপাদান। অতএব হে (এন)

গীত। প্রয়োজনীয়তা পরিবর্তিত হওয়ায় যেটি উপলভ্য রয়েছে তার জন্য আপনার গ্রন্থাগারটি পরীক্ষা করুন। MacOS / iOS এ আপনি একটি NSCountedSet তৈরি করেন, দাবি জানানোর ছাড়াই, অ্যারের 2 থেকে সমস্ত নম্বর যোগ করুন, অ্যারে 1 থেকে সমস্ত নম্বর অপসারণ, এবং কি বাকি সবকিছু অ্যারের 2 যে কিন্তু অ্যারের 1 নেই নেই এক অতিরিক্ত আইটেম।


এই উত্তরটি স্পট-অন ছিল, তবে প্রশ্নটি এমন একটি নতুন প্রয়োজনীয়তার সাথে সম্পাদনা করা হয়েছে যা আপনার অনুমানকে অকার্যকর করে দেয়।
মারিও সেরভেরা

আপনার নতুন উত্তরটি সঠিক বলে মনে হচ্ছে। সময় জটিলতা কি।
টবি আলাফিন

ঠিক আছে, প্রথমে কোডটি লেখার জন্য কী সময় প্রয়োজন। এটা তুচ্ছ। এনএসকাউন্টসেট হ্যাশিং ব্যবহার করে, তাই সময় জটিলতা "সাধারণত লিনিয়ার"।
gnasher729

-1

সবচেয়ে সংক্ষিপ্ততম, দীর্ঘতম;

দ্রুত রেফারেন্সিংয়ের জন্য মানচিত্রে সংক্ষিপ্ততম রূপান্তর করুন এবং বর্তমান মান মানচিত্রে না হওয়া অবধি দীর্ঘতম লুপের উপরে লুপ করুন।

জাভাস্ক্রিপ্টে এরকম কিছু:

if (arr1.length> arr2.length) {সংক্ষিপ্ততম = arr2; দীর্ঘতম = arr1; } অন্য {সংক্ষিপ্ততম = arr1; দীর্ঘতম = arr2; }

var ম্যাপ = সংক্ষিপ্ত.ড্রেস (ফাংশন (অবজেক্ট, মান) {اعتراض [মান] = সত্য; রিটার্ন আপত্তি;}, {});

var পার্থক্য = দীর্ঘতম.ফিন্ড (ফাংশন (মান) {রিটার্ন !!! মানচিত্র [মান];});


বিবরণ ছাড়াই কোডগুলি এখানে একটি ভাল উত্তর হিসাবে গণনা করা হয় না। এছাড়াও আপনি কেন ব্যবহার করবেন !!! ?
খারাপ

-1

সময়ের জটিলতার ক্ষেত্রে ও (এন) সমাধান জটিলতায় ও (1) সমাধান

সমস্যার বিবৃতি: ধরে নিচ্ছি যে অ্যারে 2 এ অ্যারে 1 এর সমস্ত উপাদান এবং আরও একটি উপাদান অ্যারে 1 তে উপস্থিত নেই।

সমাধানটি হ'ল: আমরা উপাদানটি অ্যারে 1 এ উপস্থিত নেই তা সন্ধানের জন্য xor ব্যবহার করি সুতরাং পদক্ষেপগুলি হ'ল: 1. অ্যারে 1 থেকে শুরু করুন এবং সমস্ত উপাদানগুলির জোর করুন এবং সেগুলি একটি ভেরিয়েবলে সংরক্ষণ করুন। 2. অ্যারে 2 নিন এবং ভেরিয়েবলের সাথে সমস্ত উপাদানগুলির জোর করুন যা অ্যারে 1 এর জোরটি সংরক্ষণ করে। ৩. অপারেশন করার পরে আমাদের ভেরিয়েবলে উপাদানটি থাকবে যা কেবল অ্যারে 2 এ উপস্থিত থাকে। উপরের অ্যালগরিদম "xor a = 0" "একটি xor 0 = a" xor এর নীচের সম্পত্তিটির কারণে কাজ করে আমি আশা করি এটি আপনার সমস্যার সমাধান করে। উপরের প্রস্তাবিত সমাধানগুলিও ঠিক আছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.