সংক্ষিপ্ততম দীর্ঘতম বর্ধমান উপশক্তি কোড


11

চ্যালেঞ্জ হ'ল দীর্ঘতম বর্ধমান অনুচ্ছেদটি খুঁজে পেতে সংক্ষিপ্ত বাস্তবায়নটি লিখতে ।

উদাহরণ : এস এর ক্রম 1 5 7 1 8 4 3 5 [এস এর দৈর্ঘ্য] 8]

  • আমাদের দৈর্ঘ্যের 0 টি উপ-অনুক্রম রয়েছে [এটি বাড়িয়ে বিবেচনা করবে]
  • দৈর্ঘ্য 1 6 1,5,7,8,4,3 6 এর 6 উপ-অনুক্রম [তাদের সবকটি বর্ধমান হিসাবে বিবেচিত হয়]
  • (7 * 8) / 2 দৈর্ঘ্যের 2 টি উপ-অনুক্রম [তবে আমরা সদৃশগুলি সরিয়ে ফেলব], ক্রমবর্ধমান সাব-সেকটি শক্ত কালো।
    { 15,17 , 11, 18,14,13,57 , 51, 58 , 54,53,55,71, 78 , 74,73,75,84,83,85,43, 45,35 }

[নোট করুন যে আমরা কেবলমাত্র সাব-সিকোয়েন্সিকে কঠোরভাবে বৃদ্ধি করতে আগ্রহী]

[আপনি অনুক্রমের অভ্যন্তরের উপাদানগুলির ক্রম পরিবর্তন করতে পারবেন না , সুতরাং উদাহরণ অনুক্রমের কোনও উপ-অনুক্রম নেই [37]

  • আমাদের 4 দৈর্ঘ্যের উপ-অনুক্রমগুলি বৃদ্ধি পেয়েছে যা 1578, তবে 5 দৈর্ঘ্যের উপ-অনুক্রম নেই, সুতরাং আমরা দীর্ঘতম বর্ধমান উপ-অনুক্রমের দৈর্ঘ্য = 4 বিবেচনা করি consider

ইনপুট :

a 1 a 2 ... a N (অনুক্রম)

সমস্ত সংখ্যা 10 3
এন <= 1000 এর চেয়ে কম ধনাত্মক পূর্ণসংখ্যার হয়

আউটপুট :

একটি পূর্ণসংখ্যা ইনপুট অনুক্রমের দীর্ঘতম বর্ধমান সাব-সিকোয়েন্সের দৈর্ঘ্যকে নির্দেশ করে।

sample input(1)
1 2 4 2 5
sample output(1)
4

sample input(2)
1 5 7 1 8 4 3 5
sample output(2)
4

আপনার কোডটি সময় মতো চলতে হবে দয়া করে এখানে জমা দেওয়ার আগে এই কোডটিতে আপনার কোডটি পরীক্ষা করুন (এছাড়াও লিঙ্কটিতে আমার 290-বাইট সি ++ 11 সমাধান রয়েছে)

হয় আপনি কোনও ফাইল / স্টিডিন থেকে অথবা একটি ফাংশন প্যারামিটার হিসাবে ইনপুট নিতে পারেন এবং আপনি হয় কোনও ফাইল / স্টাডআউটে আউটপুট প্রিন্ট করতে পারেন বা কোনও ফাংশন লিখলে মানটি ফিরিয়ে দিতে পারেন

স্কোর বোর্ড

  1. ডেনিস সিজেম - 22
  2. isaacg পাইথ - 26
  3. হাওয়ার্ড গল্ফস্ক্রিপ্ট - 35
  4. গর্বিত হাস্কেলর হাস্কেল - 56
  5. রায় পাইথন 3 - 66
  6. হিস্টোক্র্যাট রুবি - 67
  7. DLeh সি # - 92
  8. YosemiteMark Clojure - 94
  9. faubiguy পাইথন 3 - 113

1
"আমাদের দৈর্ঘ্যের 0 টি উপ-অনুক্রম রয়েছে [এটি এটিকে বৃদ্ধি হিসাবে বিবেচনা করবে]", ভাল প্রযুক্তিগতভাবে আপনার 0-দৈর্ঘ্যের সাব-সিকোয়েন্সগুলির একটি অসীম সংখ্যা রয়েছে :)
ক্রুচার

আসলে, আমাকে বিবৃতিটি পরিবর্তন করতে হবে যাতে সমস্ত "সেট" ডুপ্লিকেটগুলি মুছে ফেলতে হবে, যেমন {1,5,7,1,8,4,3,5} 1,5,7,8,4 ডলার হওয়া উচিত , 3} এবং তারপরে আমরা বলতে পারি যে "সেট" এ 1 0-দৈর্ঘ্যের উপসূচী রয়েছে। ধন্যবাদ
মোস্তফা 36a2

1
ফাংশনগুলির জন্য, আমাদের কি বাইরের ফাংশন ( function f(){...}) বা ভিতরের ফাংশন (কেবল ...) এর বাইটগুলি গণনা করা উচিত ? আমরা যদি বাইরের ফাংশনগুলি গণনা করি, তবে বেনামি ফাংশনগুলি অনুমোদিত?
ডেনিস

আমরা বাহ্যিক ফাংশনটি গণনা করি, এবং বেনামে ফাংশনগুলি অনুমোদিত, তবে একটি পরীক্ষণযোগ্য সংস্করণ সরবরাহ করতে ভুলবেন না (ইনপুট / আউটপুট হ্যান্ডলিংয়ের সাথে সম্পূর্ণ সংস্করণ)
মোস্তফা 36a2

উত্তর:


2

সিজেম, 22 বাইট

1e3,q~{_2$<$0=(t}/$0=z

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

উদাহরণ

$ cjam subsequence.cjam <<< '[2 1]'; echo
1
$ cjam subsequence.cjam <<< '[1 9 2 4 3 5]'; echo
4

প্রোগ্রাম ছাপে 57জন্য এই পরীক্ষাটি ক্ষেত্রে 0.25 সেকেন্ড পরে।

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

@ রায়ের উত্তর থেকে আমি সাধারণ ধারণা নিয়েছি ।

1e3,    " Push the array [ 0 ... 999 ] (J).        ";
q~      " Read from STDIN and evaluate.            ";
{       " For each integer (I) of the input array: ";
  _2$<  " Push [ J[0] ... J[I - 1] ] (A).          ";
  $0=(  " Compute min(A) - 1.                      ";
  t     " Update J[I] with the value on the stack. ";
}/      "                                          ";
$0=     " Compute abs(min(J)).                     ";

5

পাইথন 3, 66

নোট করুন যে সমস্ত সংখ্যা সীমার মধ্যে রয়েছে [1, 999], আমরা bপ্রতিটি সংখ্যার সাথে শেষ হওয়া দীর্ঘতম পরবর্তী অনুপাতের দৈর্ঘ্য বজায় রাখতে একটি অ্যারে ব্যবহার করতে পারি । b[x] = dএর মানে হল যে দীর্ঘতম অনুচ্ছেদের সমাপ্তি xদৈর্ঘ্য d। ইনপুট থেকে প্রতিটি সংখ্যার জন্য, আমরা অ্যারেটি ব্যবহার করে আপডেট করি b[x] = max(b[:x]) + 1এবং তারপরে max(b)অবশেষে আমরা কাজটি পেয়েছিলাম ।

সময় জটিলতা হয় চালু) ও (এমএন) , যেখানে mসর্বদা 1000 থাকে এবং nইনপুট উপাদানগুলির সংখ্যা।

def f(a):
 b=[0]*1000
 for x in a:b[x]=max(b[:x])+1
 return max(b)

বাহ, দেখতে ইতিমধ্যে নিখরচায় মনে হচ্ছে :) আপনি স্ট্যান্ডিন / স্টাডাউট ব্যবহার করে একটি লাইন যুক্ত করে এটি পরীক্ষা করতে পারেন:

print(f(map(int,input().split())))

for x in a: max(b)দেখতে অনেক সুন্দর O (n ^ 2)।
হাওয়ার্ড

@ হওয়ার্ড এটি O(1000 n)এবং 1000 একটি ধ্রুবক। আপনি এটি হিসাবে চিন্তা করতে পারেন O(m n)
রায়

3
এই জাতীয় যুক্তি দিয়ে পুরো আলোচনাটি অকেজো কারণ সীমিত ইনপুটটিতে জটিলতা সর্বদা O(1);-)
হাওয়ার্ড

@ নীচে আমি এসিএম-আইসিপিসি বিশ্ব থেকে এসেছি এবং এটি কিছুটা সেখানে কনভেনশন। আপনি এটিকে ও (এমএন) হিসাবে ভাবতে পারেন। এটি এখনও ও (এন ^ 2) থেকে পৃথক। যাইহোক, এটির ব্যয়কারী সময় দোভাষী শুরুর চেয়ে কম হবে তাই আমি মনে করি এটি যথেষ্ট দ্রুত।
রায়

চিত্তাকর্ষকভাবে সংক্ষিপ্ত অ্যালগোরিদম! আমি কেবল একটি চরিত্র চিহ্নিত করতে পারি (কমপক্ষে পাইথন 2 এ স্যুইচ করার সময়): আপনি ফলাফলটি মুদ্রণ করতে পারেন। printতুলনায় খাটো return
ফালকো

3

পাইথন - 113

a=[]
for i in map(int,input().split()):
 if not a or i>a[-1]:a+=[i]
 z=0
 while a[z]<i:z+=1
 a[z]=i
print(len(a))

সমাধান গৃহীত। আপনার কোডটি এখানে এবং এখানে পরীক্ষা করা হয়েছে
মোস্তফা 36a2

@ মোস্তফা 36a2 এই সাইটে "স্বীকৃত" শব্দের একটি অন্য অর্থ রয়েছে। আমি মনে করি আপনি যা বলতে চান তা "গ্রহণযোগ্য"।
রায়

দুঃখিত, হ্যাঁ আমি গ্রহণযোগ্য বলতে চাইছি গ্রহণযোগ্যটিকে বেছে নেওয়ার জন্য খুব তাড়াতাড়ি।
মোস্তফা 36a2

লাইন a+=[i]*(a==[]or i>a[-1]);z=0এবং মুদ্রণের মাধ্যমে len(a)(বন্ধনী ছাড়াই) আপনি 4 টি অক্ষর সংরক্ষণ করতে পারবেন।
ফালকো

3

পাইথ , 26 29 33 39

J*]0^T3Fkyw=@JkheS:J0k)eSJ

@ রশ্মির সমাধানের বন্দর। সরকারী পরীক্ষায় উত্তীর্ণ হয়। এখন স্পেস কল নয়, স্থান-বিচ্ছিন্ন STDIN ইনপুট ব্যবহার করে।

নিম্নলিখিত হিসাবে চালান:

./pyth.py -c "J*]0^T3Fkyw=@JkheS:J0k)eSJ" <<< "1 5 7 2 8 4 3 5"
4

ব্যাখ্যা:

J*]0^T3                 J = [0]*10^3
Fkyw                    For k in space_sep(input()):
=@Jk                    J[k]=
heS:J0k                 max(J[0:k])+1
)                       end for
eSJ                     max(J)

সীমাহীন সময়:

পাইথ , 18

L?eS,ytbhyf>Thbbb0

প্রযুক্তিগত দ্রষ্টব্য: আমি এই গল্ফটি লেখার সময় আমার পাইথ কম্পাইলারের মধ্যে একটি বাগ লক্ষ্য করেছি। Lকাজ করছিল না এজন্য উপরের গিট সংগ্রহস্থলের প্রতি সাম্প্রতিক প্রতিশ্রুতি রয়েছে।


আপনার কোডটি একটি বৃহত তালিকার সাথে মামলা করার জন্য সময় মতো পদ্ধতিতে চলবে না (100 উপাদানটি বলুন)
মোস্তফা 36a2

3
@ মোস্তফা ৩36 এ 2 আপনি যদি রানটাইমকে প্রয়োজনীয়তা বানাতে চান তবে দয়া করে প্রশ্নে বলুন এবং একটি বা দুটি পরীক্ষার কেস যুক্ত করুন। যদি এটি কেবল একটি মন্তব্য হয় তবে আমি সম্মতি জানাই, এটি বেশ ধীর।
isaacg

দুঃখিত তবে আমি উল্লেখ করেছি যে রানটাইম নয় তবে কমপক্ষে একটি [সময়োপযোগী পদ্ধতি], কোড 10-10 মিনিট বা এমনকি এক ঘন্টা সময় নিলেও সমস্যা নেই, তবে ও (2 ^ n) সমাধানগুলি কখনই ফলাফল দেয় না আমাদের দীর্ঘ জীবন
মোস্তফা 36a2

@ মোস্তফা ৩a এ 2 বুঝতে পেরেছি, আমি ঠিক সেই রেখাটি লক্ষ্য করেছি। আমি একটি উন্নতি কাজ করব।
isaacg

1
দুঃখিত আমি এখনই আপডেটটি দেখতে পাচ্ছি, দয়া করে এই কেসটি ব্যবহার করে দেখুন এবং এটি কাজ করে কিনা আমাকে বলুন।
মোস্তফা 36a2

3

ক্লোজার, 94 টি অক্ষর

1000-আইটেম ভেক্টরে ফলাফল আপডেট করার জন্য @ রায়ের পদ্ধতির ব্যবহার:

(defn g[s](apply max(reduce #(assoc % %2(inc(apply max(take %2 %))))(into[](repeat 1e3 0))s)))

প্রতি অনুরোধ, মুদ্রণ বিবৃতি সহ (উত্তর মুদ্রণ করবে এবং শূন্য হবে)। ইনপুটটি ভেক্টর (g [1 2 3]) বা একটি তালিকা (g '(1 2 3)) হওয়া উচিত:

(defn g[s](prn(apply max(reduce #(assoc % %2(inc(apply max(take %2 %))))(into[](repeat 1e3 0))s))))

আপনি কি পরীক্ষার যোগ্য করতে মুদ্রণ বিবৃতি যুক্ত করতে পারেন? এটি স্কোর গণনা করা হবে না।
মোস্তফা 36a2

1
আপডেট করা হয়েছে। আমি এটি আপনার দুটি বড় উদাহরণে চালিয়েছি এবং প্রত্যাশা অনুযায়ী 58 এবং 57 পেয়েছি।
YosemiteMark

আমি মনে করি আপনাকে এখনও ফাংশনটি কল করতে হবে: পি, তবে আপনি যদি এটি পরীক্ষা করে থাকেন তবে যথেষ্ট।
মোস্তফা 36a2

3

হাস্কেল, 58 57 56 টি অক্ষর

(x:s)%v|v>x=x:s%v|0<1=v:s
_%v=[v]
l s=length$foldl(%)[]s

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


আপনি উল্লিখিত অ্যালগরিদমটি @ ফৌবিগুয়ের ব্যবহার মতো।
রায়

@ রায় আপনি ঠিক বলেছেন
21:20

2

গল্ফস্ক্রিপ্ট, 35 টি অক্ষর

~]]){1${~2$<*)}%1+$-1>[\+]+}/$-1=0=

STDIN এ ইনপুট সহ একটি সম্পূর্ণ প্রোগ্রাম হিসাবে কাজ করা একটি প্রয়োগ (প্রদত্ত দৈর্ঘ্যের সংখ্যা ছাড়াই)। বাস্তবায়নটি যুক্তিসঙ্গত দ্রুত, এমনকি দীর্ঘতর ইনপুটগুলির জন্য ( এখানে চেষ্টা করুন )।

উদাহরণ:

> 1 5 7 1 8 4 3 5
4

> 5 1 9 9 1 5
2

1
@ মার্টিনব্যাটনার আমার কম্পিউটারে 1000 নম্বরের জন্য প্রায় 5 সেকেন্ড সময় নেয়। ধরে নেওয়া $হ'ল হে (এন লগ এন) অ্যালগরিদম হ'ল হে (এন ^ 2 লগ এন)।
হাওয়ার্ড


@ মোস্তফা 36a2 আমি ইতিমধ্যে করেছি (আগে মন্তব্য দেখুন)। 5 সেকেন্ড পরে এটি 58
হাওয়ার্ড

এটি অন্যটি, এটি 57 ফেরত আসা উচিত, সুতরাং যদি আপনার কোড 57 ফেরত দেয় তবে তা স্বীকার করা হয়েছে :) অভিনন্দন
মোস্তফা 36a2

@ মোস্তফা ৩36 এআ, আহ, এখন দেখছি এগুলি দুটি স্বতন্ত্র পরীক্ষার কেস। হ্যাঁ, আপনার দ্বিতীয় লিঙ্কটি এই ইনপুটটিতে আমার সমাধান হিসাবে 57 ফেরত দেয়।
হাওয়ার্ড

2

রুবি, 67

s=Hash.new{|s,a|f,*r=a
s[a]=f ?[1+s[r.select{|x|x>f}],s[r]].max: 0}

এটি বড় ইনপুটটিতে 30 সেকেন্ডের মধ্যে চলেছে, এটি কি সময়োপযোগী গণনা করে? : P

এটি নিষ্ঠুর পুনরাবৃত্তি, তবে কিছু স্মৃতিচারণ সহ।


1
হ্যাঁ, এটি একটি সময় মতো পদ্ধতি :)
মোস্তফা 36a2

2

সি #, 172 92 অক্ষর

বিশেষ কিছু নয়, তবে আমি এটি করেছি তাই আমি অনুভব করেছি যে আমি এটি জমা দিতে পারি might

int a(int[] j){int c=2,m=2,i=1;for(;++i<j.Length;){c=j[i]>j[i-1]?c+1:2;m=c>m?c:m;}return m;}

আরমিন এবং বব তাদের উন্নতির জন্য ধন্যবাদ!


1
আপনি আপনার প্যারামিটারটি ইনট [] এ পরিবর্তন করতে পারেন এবং তারপরে আপনার কম অক্ষর থাকতে হবে কারণ আপনার স্ট্রিংটি
আর্মিন

2
আশেপাশের জায়গাগুলি =>অপ্রয়োজনীয়। এছাড়াও আপনি স্থানান্তর করতে পারেন i=0বাহিরে ঘোষণা forলুপ, এর int c=2,m=2,i=0;for(;। আপনি ব্রেসগুলি সারা forশরীরের চারপাশে ফেলে দিতে পারেন , কারণ সেখানে কেবলমাত্র আপনার কাছে একটি বিবৃতি রয়েছে।
বব

এবং c++;if(c>m)m=c;হতে পারে m=c++>m?m:c;, এবং আপনি আবার কাছাকাছি বক্রবন্ধনী ড্রপ করতে পারেন।
বব

1
আসলে, আপনার কাছে বাতিল করে দেয় if(i>0)করার মাধ্যমে চেক for1. এ লুপ শুরু আপনি আরও খাটো করতে পারেন int c=2,m=2,i=0;for(;i<j.Length;i++)if(i>0)মধ্যে প্রস্তাবিত আগে int c=2,m=2,i=0;for(;i++<j.Length;)। সেই পুরো বিভাগটি রূপান্তরিত হতে পারে int c=2,m=2,i=0;for(;i++<j.Length;){c=j[i]>j[i-1]?c+1:2;m=c>m?m:c;}(শেষের অংশটি প্রতিস্থাপনের জন্য আরও একটি ত্রিনিয়ার ব্যবহার করে if- আপনার ifশরীরের যদি কেবল একটি অ্যাসাইনমেন্ট হয় তবে থাম্বের নিয়মটি ছোট হয়
বব

2
দুঃখিত - আমার আগের মন্তব্যে টাইপ করা m=c>m?m:cউচিত m=c>m?c:m। এবং আপনি যদি @ আরমিনের পরামর্শ যুক্ত করেন তবে আপনি 92 বাইট পেয়ে যাবেন, প্রায় আকার অর্ধেক! int a(int[] j){int c=2,m=2,i=0;for(;i++<j.Length;){c=j[i]>j[i-1]?c+1:2;m=c>m?c:m;}return m;}
বব

2

জে , 19 বাইট

[:#]`I.`[} ::,~/@|.

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

রান হে (n log n) , একটি পরিবর্তিত ধৈর্য সাজানোর শুধুমাত্র দৈর্ঘ্য যেহেতু প্রকৃত subsequence ব্যবহার করে,, প্রয়োজন হয়।

ব্যাখ্যা

[:#]`I.`[} ::,~/@|.  Input: array
                 |.  Reverse
               /     Reduce right-to-left
     I.                Find the index to insert while keeping it sorted
                       (uses binary search)
         }             Amend the current search array at that index with the next value
           ::          If error (when the index is not found)
             ,           Append the value at the end
 #                   Length of that array

1

বাশ + কোর্টিলস, 131 বাইট

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

s=${1//,/,:\},\{}
a=`eval echo "{$s,:}"`
for s in $a;{
b="$(tr , \\n<<<$s|grep -v :)"
sort -nC<<<"$b"&&wc -w<<<$b
}|sort -nr|sed 1q

ইনপুট হ'ল একক কমান্ড-লাইন আর্গুমেন্ট হিসাবে একটি কমা দ্বারা পৃথক করা তালিকা:

$ time ./slisc.sh 1,5,7,1,8,4,3,5
4

real    0m1.240s
user    0m0.518s
sys 0m0.689s
$ 

সমস্ত সম্ভাব্য উপসর্গের তালিকা তৈরি করতে ব্রেস প্রসারণ ব্যবহৃত হয়।

  • প্রথম লাইনটি কমাগুলি প্রতিস্থাপন ,:},{করে, যা একটি স্ট্রিং তৈরি করে1,:},{5,:},{7,:},{1,:},{8,:},{4,:},{3,:},{5
  • দ্বিতীয় লাইনটি ব্রেস, কমা এবং সেমিকোলন দিয়ে এই স্ট্রিংটি সম্পূর্ণ করে {1,:},{5,:},{7,:},{1,:},{8,:},{4,:},{3,:},{5,:}। এটি বৈধ বাশ ধনুর্বন্ধনী প্রসারণ, যা evalএড করার সাথে সাথে echoএই স্থান-বিভাজিত তালিকা তৈরি করে1,5,7,1,8,4,3,5 1,5,7,1,8,4,3,: 1,5,7,1,8,4,:,5 1,5,7,1,8,4,:,: ...
  • ডিফল্টরূপে, বাশ হোয়াইটস্পেসের সাথে স্ট্রিংগুলি বিভক্ত করে, তাই আমরা এই তালিকার প্রতিটি উপাদানকে লুপ করব:
    • কমাগুলি নতুন লাইনের সাথে প্রতিস্থাপন করা হয়, তারপরে কোলনযুক্ত লাইনগুলি সরানো হয়, প্রতিটি সম্ভাব্য অনুক্রমের জন্য নিউলাইন-পৃথক তালিকা প্রদান করে
    • আমরা তারপরে sort -Cক্রমবর্ধমান ক্রম পরীক্ষা করার জন্য এবং যদি তা wc -wহয় তবে তালিকার দৈর্ঘ্য প্রিন্ট করতে ব্যবহার করি
  • তালিকার দৈর্ঘ্যের ফলস্বরূপ তালিকাটি বিপরীতে বাছাই করা হয় এবং দীর্ঘতম বর্ধমান উত্তরোত্তর দৈর্ঘ্য দিতে প্রথম মানটি মুদ্রিত হয়।

1

স্ট্যাক্স , 21 বাইট

ë/NS7Γ╥╚┌{1╤╒¬è¶²╢╦┌☼

এটি চালান এবং এটি ডিবাগ করুন

এটিতে দুটি পরীক্ষার কেস রয়েছে যার মধ্যে একটি হল 1000-এলিমেন্টের কেস। এটি আমার মেশিনে 24 সেকেন্ডের মধ্যে এটি চালায়। এটি এই ধরণের সমস্যার জন্য ক্লাসিক গতিশীল প্রোগ্রামিং পদ্ধতির ব্যবহার করে।


0

জে 34

মনে রাখবেন যে আমি স্ট্যান্ডার্ড ইনপুটও পড়েছি।

>./;+/@:*&.>(<*>.)/\&.><\.".1!:1]3

স্ট্যান্ডার্ড ইনপুট না পড়ে মাংসটি 26 টি অক্ষর।

>./;+/@:*&.>(<*>.)/\&.><\.

স্রেফ লক্ষ্য করা হয়েছে যে আমার বড় ইনপুটটির জন্য ধীর গতিতে চলছে।



0

সি # (.নেট কোর) , 155 বাইট

ইনপুট অ্যারে (ডায়নামিক প্রোগ্রামিং) এর প্রতিটি অবস্থানে শেষ হওয়া দীর্ঘতম বর্ধমান অনুগম গণনা করতে একটি অ্যারের ব্যবহার করা হয়েছে, তারপরে সর্বাধিক মানটি প্রদান করেছে। উদাহরণস্বরূপ, ইনপুটটির জন্য গণিত অ্যারেটি [1,5,7,1,8,4,3,5]হবে [1,2,3,1,4,2,2,3]এবং বৃহত্তম মানটি 4ফিরে আসবে।

int b(int[]x){int l=x.Length,r=1,i=0,j,c;var a=new int[l];a[0]=1;while(++i<l)for(j=0;j<i;j++){c=x[j]<x[i]?a[j]+1:1;a[i]=a[i]<c?c:a[i];r=r<c?c:r;}return r;}

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


0

ওল্ফ্রাম ভাষা (ম্যাথমেটিকা) , 38 বাইট

Length@LongestOrderedSequence[#,Less]&

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

দীর্ঘতম আদেশযুক্ত সিকোয়েন্সগুলি সন্ধানের জন্য অবশ্যই একটি গাণিতিক অন্তর্নির্মিত রয়েছে। এটির নামটি দীর্ঘ।

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