এই সাধারণ চ্যালেঞ্জে আপনাকে L
অ-নেতিবাচক পূর্ণসংখ্যার একটি ইনপুট অ্যারে এবং b
0 এর চেয়ে বেশি সংখ্যক বিনের সংখ্যা দেওয়া হবে তবে দৈর্ঘ্যের চেয়ে বেশি নয় L
। আপনার কোড অবশ্যই একটি নতুন অ্যারে প্রদান করবে M
যার দৈর্ঘ্য b
এবং কোনটি অ্যারে বিন্ন করেছে L
। এটি উদাহরণ সহ সহজ ব্যাখ্যা করা হয়।
L = [1,0,5,1]
এবং b = 2
ফিরে M = [1,6]
।
L = [0,3,7,2,5,1]
এবং b = 3
ফিরে M = [3,9,6]
।
এতদূর, এত সহজ। তবে এই প্রশ্নে b
অগত্যা বিভাজন করতে হবে না len(L)
। এই ক্ষেত্রে শেষ বিনটিতে এটি তৈরির জন্য কম সংখ্যা থাকবে।
সম্ভবত সর্বশেষটি ব্যতীত প্রতিটি বিনের মোট সংখ্যার অবদান রাখতে হবে। অন্যান্য বিনের তুলনায় শেষ বিনের এতে আরও বেশি অবদান রাখতে হবে না। শেষ বিনটিতে অন্যান্য নিয়মের সাপেক্ষে যতটা সম্ভব তার পক্ষে অবদান রাখতে হবে।
L = [0,3,7,2,5,1]
এবং b = 4
ফিরে M = [3,9,6,0]
। M = [10,8,0,0]
তৃতীয় বিনটিতে বিন্দু 1
এবং অবদান হিসাবে সংখ্যার নাম্বার সংখ্যা না থাকায় এটি গ্রহণযোগ্য আউটপুট নয় 2
।
L = [0,3,7,2,5]
এবং b = 2
ফিরে M = [10,7]
। M = [3, 14]
কোনও গ্রহণযোগ্য আউটপুট নয় কারণ শেষ 3
বিনটিতে এতে অবদান রাখার উপাদান থাকবে তবে প্রথমটিতে কেবল আছে 2
।
L = [1,1,1,1,1,1,1]
এবং b = 3
ফিরে M = [3,3,1]
।
চূড়ান্ত নিয়ম হিসাবে, আপনার কোড অবশ্যই রৈখিক সময়ে চলতে হবে।
আপনি নিজের পছন্দ মতো যে কোনও ভাষা বা লাইব্রেরি ব্যবহার করতে পারেন এবং ধরে নিতে পারেন যে কোনও উপায়ে আপনার সুবিধাজনক মনে হচ্ছে তা সরবরাহ করা হয়েছে।
দেখা যাচ্ছে যে কিছু ইনপুট রয়েছে যা সমাধান করা যায় না। উদাহরণস্বরূপ [1,1,1,1,1]
এবং b=4
। আপনার কোডগুলি in ইনপুটগুলির জন্য যা পছন্দ করে তা আউটপুট করতে পারে।
your code must run in linear time
- আমি এমন কোনও অ্যালগরিদম খুঁজে পেতে পারি যিনি এটিকে প্রাকৃতিকভাবে বেশ অদ্ভুতভাবে অনুসরণ করেন না