একটি "বাছাই করা" অ্যালগরিদম


33

একটি "বাছাই করা অ্যালগরিদম" কখনও কখনও স্ট্যালিন সাজাকে বলা হয় যাতে একটি তালিকা সাজানোর জন্য আপনি ক্রমবর্ধমান ক্রম অনুসারে বাছাই না করা অবধি তালিকা থেকে উপাদানগুলি সরিয়ে ফেলুন। উদাহরণস্বরূপ তালিকা

[1, 2, 4, 5, 3, 6, 6]

স্ট্যালিন বাছাই করে যখন "সাজানো" হয়ে যায়

[1, 2, 4, 5, 6, 6]

তিনটি অপসারণ করা হয়েছে কারণ এটি বিন্যাসের বাইরে ছিল।

এখন স্পষ্টতই একটি তালিকা সাজানোর জন্য উপাদানগুলি অপসারণের অনেকগুলি উপায় রয়েছে। উদাহরণস্বরূপ দু'টিরও কম উপাদান সহ যে কোনও তালিকা বাছাই করতে হবে তাই কেবল পর্যাপ্ত উপাদানগুলি অন্ধভাবে মুছে ফেলা আমরা সর্বদা একটি তালিকা বাছাই করতে পারি। যেহেতু এটিই কেবল তাই আমরা কেবল স্ট্যালিন বাছাইয়ের দীর্ঘতম সম্ভাব্য ফলাফল সম্পর্কে যত্নশীল ।

আপনার কাজটি হ'ল ইতিবাচক পূর্ণসংখ্যার একটি তালিকা নেওয়া এবং দীর্ঘতম বাছাই করা (বর্ধমান) তালিকার দৈর্ঘ্য আউটপুট করা যা মূল তালিকা থেকে উপাদানগুলি সরিয়ে নিয়ে পৌঁছতে পারে। এটি দীর্ঘতম বাছাই করা (সম্ভবত অনড় না থাকা) উপ-তালিকার দৈর্ঘ্যটি খুঁজে বের করে।

সাজানো তালিকাগুলিতে একাধিকবার একাধিকবার একই উপাদান থাকতে পারে। আপনার প্রোগ্রামটি খালি না হলে খালি তালিকা সমর্থন করার দরকার নেই।

স্কোরিং

আপনার উত্তরটি তার নিজের দীর্ঘতম সম্ভাব্য স্টালিন সাজানোর দৈর্ঘ্য দ্বারা স্কোর করা হবে। প্রোগ্রামগুলি অক্ষরের পরিবর্তে বাইটের ক্রম হিসাবে ব্যাখ্যা করা হবে এবং তাদের ক্রমটি প্রাকৃতিক হবে যা বাইটগুলি সংখ্যা হিসাবে ব্যাখ্যা করে উত্পন্ন হবে। নিম্ন স্কোরগুলি আরও ভাল।

এটি

আপনার উত্তরগুলি স্কোর করতে আপনাকে সহায়তা করার জন্য এখানে একটি ঝরঝরে O সরঞ্জাম রয়েছে

পরীক্ষার মামলা

[1, 2, 4, 5, 3, 6, 6] -> 6
[19, 2] -> 1
[3, 3, 4, 3] -> 3
[10] -> 1
[1, 2, 4, 9] -> 4
[1, 90, 2, 3, 4, 5] -> 5
[1, 90, 91, 2, 3, 4, 5] -> 5


1
আমি এই নিয়মটি পছন্দ করি "আপনার প্রোগ্রামটি খালি না হলে আপনার খালি তালিকা সমর্থন করার দরকার নেই।"
পাওলো ইবারম্যান

এই চ্যালেঞ্জটি আমাকে ড্রপসোর্ট চ্যালেঞ্জের অনেকটা মনে করিয়ে দেয়: কোডগল্ফ.স্ট্যাকেক্সেক্সঞ্জ
প্রশ্নগুলি

1
আমি ptpb.pw/SVSt.html এ একটি পরীক্ষক তৈরি করেছি । এখনও খুব কার্যকরী নয়, তবে এটি কার্যকর হয়। (TODO: * বার চার্ট * কমপক্ষে হ্রাস অনুক্রমে পার্টিশন * অন্যান্য কোড পৃষ্ঠাগুলির জন্য সমর্থন)
ব্যবহারকারী 202729

@ ব্যবহারকারী 202729 দুর্দান্ত! আমি এটি পোস্টে যুক্ত করেছি। প্রয়োজনে নতুন সংস্করণ সম্পাদনা করতে নির্দ্বিধায়
গম উইজার্ড 21

উত্তর:


8

পাইথন 2 , দৈর্ঘ্য 14 12 10 9

M=max;X=exit;i=input();L=[0]*M(i)
for	a	in	i:L[a-1]=M(L[:a])+1
X(M(L))

আউটপুটটি প্রস্থান কোডের মাধ্যমে হয়।

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

সর্বদা, অ্যারে এল এখন পর্যন্ত যে দীর্ঘতম সাজানো সাববারাইগুলির মুখোমুখি হয়েছিল তার উপর নজর রাখে; এল[একটি-1] হ'ল দীর্ঘতম দৈর্ঘ্যের সাথে একটি দিয়ে শেষ হয় ।

প্রাথমিকভাবে, আমরা কোনও অ্যারে উপাদানগুলি প্রক্রিয়া করি নি, তাই এল সম্পূর্ণরূপে শূন্যকে নিয়ে গঠিত।

যখন অ্যারের উপাদান প্রক্রিয়াকরণের একটি , তাই আমরা প্রথমেই সর্বোচ্চ নেওয়া [এল[0],...,এল[একটি-1]] , যা দীর্ঘতম সাজানো এতদূর সম্মুখীন subarray এর দৈর্ঘ্য হল যে সঙ্গে প্রান্ত একটি বা একটি ছোট পূর্ণসংখ্যা। সংযোজন একটি যেমন একটি অ্যারে থেকে এটি সাজানো, তাই দীর্ঘতম সাজানো subarray শেষ হওয়া রাখা হবে একটি এক উপাদান যে সর্বাধিক চেয়ে বড়। আমরা গণিত মান সহ এল[একটি-1] আপডেট করি ।

চূড়ান্ত ফলাফল সর্বাধিক এল


আপনি দয়া করে ব্যাখ্যা করতে পারেন, কেন এটি কাজ করে? এটি বোঝার জন্য আমার অনেক কঠিন সময় হচ্ছে :(
ডেড পসসুম

আমি একটি ব্যাখ্যা যুক্ত করেছি।
ডেনিস




4

জেলি , দৈর্ঘ্য  4  2

ṢƑƇZLƲ}ŒP

এটি অনলাইন চেষ্টা করুন!

জেলির কোড পৃষ্ঠাতে বাইটস

183 146 144 90 76 169 125 19 80

কিভাবে এটা কাজ করে

ṢƑƇZLƲ}ŒP  Main link. Argument: A (array)

       ŒP  Powerset; yield P, the array of all sub-arrays of A.
     Ʋ     Vier; combine the preceding four links into a monadic chain...
      }    and apply the chain to the right argument (P).
  Ƈ            Comb; only keep arrays for which the link to the left returns 1.
ṢƑ             Sort fixed; yield 1 if sorting doesn't alter the array.
   Z           Zip; read the filtered powerset by columns.
    L          Take the length.

3

পাইথ, স্কোর 3 2 ( 7 বাইট)

leSI#y

অ্যান্ডারস কাসের্গকে ধন্যবাদ জানিয়ে একটি পয়েন্ট সংরক্ষণ করা হয়েছে।
এখানে চেষ্টা করুন

ব্যাখ্যা

leSI#y
     yQ    Take the power set of the (implicit) input (preserving order).
  SI#      Get the ones that are sorted.
 e         Take the last (longest).
l          Get the length.



2

আর , স্কোর 15 11, 72 62 বাইট

function(L,M=max,A=1:M(L)*0){for(Y in L)A[Y]=M(A[1:Y])+1;M(A)}

এটি অনলাইন চেষ্টা করুন!

পোর্টস ডেনিসের পাইথন উত্তর


শুধু পরিবর্তনশীল নামের পরিবর্তন হবে সাহায্যের না, কারণ আপনার শেষ লিংক শো হিসাবে, তাদের কেউ (পাওয়া যায়) ব্যবহার করা হয় সাবস্ট্রিং যে স্কোর 15. দেয়
Orjan Johansen

@ আরজান জোহেনসেন আহ, অবশ্যই আমি বরং বোবা। আমি মনে করি অন্য একটি পদ্ধতির প্রয়োজন হয়।
জিউসেপে

2

Brachylog , দৈর্ঘ্য 2 (4 বাইট)

⊇≤₁l

এটি অনলাইন চেষ্টা করুন!

একটি উত্তর যা এত সংক্ষিপ্তভাবে বাছাই না করে এত সংক্ষিপ্ত হওয়ার জন্য তৈরি করে।

( 08 03 80 6Cব্র্যাচল্যাগের কোড পৃষ্ঠাতে)

        Output
   l    the length of
 ≤₁     a non-decreasing
⊇       sublist of
        the input.
        (maximizing the size of the sublist)

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