তালিকার দ্বিতীয় সর্বোচ্চ রান করা


20

পূর্ণসংখ্যার একটি তালিকা দেওয়া আপনার কাজটি হ'ল প্রথম কে উপাদানগুলিতে দ্বিতীয় বৃহত্তম মান , প্রতিটি কে জন্য 2 এবং ইনপুট তালিকার দৈর্ঘ্যের মধ্যে আউটপুট করা।

অন্য কথায়, ইনপুটটির প্রতিটি উপসর্গের জন্য দ্বিতীয় বৃহত্তম মান আউটপুট করুন।

আপনি প্রথম উপাদানটির (যেখানে k = 1) স্বেচ্ছাসেবক মান আউটপুট করতে পারেন বা এই মানটি কেবল বাদ দিতে পারেন, কারণ 1 টি উপাদানের তালিকার জন্য দ্বিতীয় সর্বোচ্চ নেই। আপনি ধরে নিতে পারেন ইনপুটটিতে কমপক্ষে 2 টি উপাদান রয়েছে।

সংক্ষিপ্ততম কোড জিতেছে।

উদাহরণ

Input:
1 5 2 3 5 9 5 8
Output:
  1 2 3 5 5 5 8
Input:
1 1 2 2 3 3 4
Output:
  1 1 2 2 3 3
Input:
2 1 0 -1 0 1 2
Output:
  1 1 1 1 1 2

আমার ইংরাজী সেরা না, কীভাবে kনির্ধারিত হয়?
লিফডেভেন

@ লিফড ওয়েইন প্রতিটি কে-এর উত্তর সম্বলিত একটি তালিকা আউটপুট দেয়।
jimmy23013

2
1না, কঠোরভাবে বলতে হয়, দ্বিতীয় বৃহত্তম মান এর 1,1(2nd উদাহরণ) এটিকে দ্বিতীয় মান যখন সাজানো সাজানো আছে।
জোনাথন অ্যালান

হতে পারে আমি কেবল বোকা (যদিও আমি সন্দেহ করি যে আমি সত্যিই উইকএন্ড শুরু করতে পারতাম ..) তবে আমি কীভাবে এটি কাজ করে তা এখনও নিশ্চিত নই। কেউ কি আমার কাছে শেষ পরীক্ষার মামলাটি ELI5 করতে পারে? প্রথম দুটি পরীক্ষার কেস আমি তালিকাটি কেবলমাত্র লুপ করে তালিকার বর্তমান সর্বনিম্ন নির্ধারণ করে সমাধান করতে পারি এবং তারপরে সেই আইটেমটি (বা আরও সহজ: সারণি তালিকা এবং শেষ আইটেমটি সরিয়ে) সরিয়ে ফেলতে পারি। এটি প্রথম দুটি পরীক্ষার ক্ষেত্রে সঠিক ফলাফল দেয়, তবে এটি অবশ্যই ভুল (এবং -1, 0, 0, 1, 1, 2শেষ পরীক্ষার ক্ষেত্রে দেবে))
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুজসেন আপনার দেখা দুটি বৃহত্তম সংখ্যা মনে রাখবেন। শেষের ক্ষেত্রে, আপনি 2 টি সবচেয়ে বড় হিসাবে শুরু করে এবং আউটপুট কিছুই না / যেহেতু এটি এই মুহুর্তে কোনও অর্থ দেয় না। তারপর আপনি যাতে আপনি আউটপুট 1. এই থাকার বিষয়টি মতেই একই পর্যন্ত আপনি 2 শেষে পৌঁছানোর পরবর্তী পুনরাবৃত্তিতে এ 1 এবং 2 পরিবর্তন, এবং তারপর আপনি 2 এবং 2 বৃহত্তম ও দ্বিতীয় বৃহত্তম হিসেবে
FryAmTheEggman

উত্তর:


6

05 এ বি 1 ই , 5 বাইট

ηεà\à

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

[]প্রথমটির জন্য রিটার্ন (স্বেচ্ছাচারিত মান)।


η¦ε{¨θ6 বাইটের জন্য কাজ করা উচিত
আদনান

@ আদনান অবশ্যই _ _ তবে যাইহোক আরও ভাল উপায় খুঁজে পেয়েছেন ...
এরিক দি আউটগলফার

Z©KZ®‚¹sÃমজাদার ... আমি যা ভাবছিলাম তা জানতাম না, àএমনকি একটি জিনিসও ছিল!
ম্যাজিক অক্টোপাস আরন


5

হুশ , 9 7 বাইট

@ জগারবকে একটি বা দুটি বাট সংরক্ষণ করা হয়েছে

mȯ→hOtḣ

রিটার্নস 0প্রথমে "দ্বিতীয় সর্বোচ্চ" জন্য

Explaination

         -- implicit input, e.g          [1,5,3,6]
      ḣ  -- prefixes                     [[],[1],[1,5],[1,5,3],[1,5,3,6]]
     t   -- remove the first element     [[1],[1,5],[1,5,3],[1,5,3,6]]
mȯ       -- map the composition of 3 functions
    O    --   sort                       [[1],[1,5],[1,3,5],[1,3,5,6]]
   h     --   drop the last element      [[],[1],[1,3],[1,3,5]
  →      --   return the last element    [0,1,3,5]
         -- implicit output

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


1
আপনি →hOপরিবর্তে মানচিত্র এবং একটি বাইট সংরক্ষণ করতে পারে ।
জাগারব


3

জাভাস্ক্রিপ্ট (ES6), 58 51 50 বাইট

@ নীলকে ধন্যবাদ 1 বাইট সংরক্ষিত

আপনার স্বাক্ষরে undefinedজন্য ট = 1

a=>a.map(e=>(b=[e,...b]).sort((a,b)=>b-a)[1],b=[])

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

এনবি: এই স্নিপেট JSON.stringify()পাঠযোগ্যতার জন্য ব্যবহার করে , যা - পার্শ্ব প্রতিক্রিয়া হিসাবে - রূপান্তর undefinedকরে null


1
আমার মনে a=>a.map(e=>(b=[e,...b]).sort((a,b)=>b-a)[1],b=[])হয় কেবল 50 বছর
নিল

নিল নিস :-)
আর্নল্ড

2

পাইথ , 8 বাইট

m@Sd_2._

এটি অনলাইন চেষ্টা করুন! বা টেস্ট স্যুটটি ব্যবহার করে দেখুন!


কিভাবে?

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

m@Sd_2._ - অন্তর্নিহিত ইনপুট সহ সম্পূর্ণ প্রোগ্রাম।

m ._Q - ভেরিয়েবলের সাহায্যে ইনপুটটির উপসর্গগুলির উপর মানচিত্র।
  এসডি - বর্তমান উপসর্গ বাছাই করে।
 @ - উপাদান পায় ...
    _2 - সূচকে - 2 (দ্বিতীয় সর্বোচ্চ)।
           - স্পষ্টভাবে মুদ্রণ করুন।

2

জেলি , 8 বাইট

ḣJṢ€Ṗ€Ṫ€

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

প্রথম মানটি সর্বদা 0 হবে এবং নিম্নলিখিত সংখ্যাগুলি প্রতিটি উপসর্গের দ্বিতীয় সর্বোচ্চ হয়।

ব্যাখ্যা

ḣJṢ€Ṗ€Ṫ€  Input: array A
 J        Enumerate indices, [1, 2, ..., len(A)]
ḣ         Head, get that many values from the start for each, forms the prefixes
  Ṣ€      Sort each
    Ṗ€    Pop each, removes the maximum
      Ṫ€  Tail each

@ চ্যালেঞ্জার 5 আমি বিশ্বাস করি না যে কাজ করে
মাইল

@ চ্যালেঞ্জার 5 এটি কাজ করে না ...
এরিক দ্য আউটগল্ফার

@ ইরিকথ আউটগলফার ওহ, ঠিক আছে
এওসোলিং ফল


2

পাইথন 2 , 45 বাইট

f=lambda l:l[1:]and f(l[:-1])+[sorted(l)[-2]]

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

কোডের ডান দিকটি স্ব-বর্ণনামূলক। যাইহোক, আমরা কি বাম দিকে রাখি and? যেহেতু আমরা তালিকার অংশগুলি পুনরাবৃত্তভাবে সংবিধানযুক্ত করছি, আমাদের l2 বা ততোধিক উপাদান থাকলে সত্যবাদী হওয়ার জন্য বাম দিকটি এবং অন্যথায় একটি খালি তালিকা দরকার। l[1:]এই মানদণ্ডটি সুন্দরভাবে সন্তুষ্ট করে।




1

ব্যাচ, 123 বাইট

@set/af=s=%1
@for %%n in (%*)do @call:c %%n
@exit/b
:c
@if %1 gtr %s% set s=%1
@if %1 gtr %f% set/as=f,f=%1
@echo %s%


1

05 এ বি 1 ই , 5 বাইট

আরও একটি 5 বাইটার খুঁজে পেয়েছি, যা এরিকের সমাধান থেকে খুব আলাদা । স্বেচ্ছাচারিত মান তালিকার প্রথম উপাদান।

ηε{Áθ

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


ব্যাখ্যা

ηε{Áθ  - Full program that reads implicitly from STDIN and outputs to STDOUT.

η      - Push the Prefixes of the list.
 ε     - Apply to each element (each prefix):
  {      - Sort the prefix list.
   Á     - Shift the list to the right by 1, such that the first element goes to the 
           beginning  and the second largest one becomes the last.
    θ    - Get the last element (i.e. the second largest)
         - Print implicitly.

এটি বোঝার সহজ করার জন্য আসুন একটি উদাহরণ নেওয়া যাক।

  • প্রথমে আমরা অন্তর্নিহিত ইনপুটটি পাই, আসুন এটি বলা যাক [1, 5, 2, 3, 5, 9, 5, 8]

  • তারপর, আমরা তার উপসর্গ ব্যবহার ধাক্কা η- [[1], [1, 5], [1, 5, 2], [1, 5, 2, 3], [1, 5, 2, 3, 5], [1, 5, 2, 3, 5, 9], [1, 5, 2, 3, 5, 9, 5], [1, 5, 2, 3, 5, 9, 5, 8]]

  • এখন, তালিকাটির মাধ্যমে কোড মানচিত্র এবং {- ব্যবহার করে প্রতিটি উপসর্গ বাছাই করে [[1], [1, 5], [1, 2, 5], [1, 2, 3, 5], [1, 2, 3, 5, 5], [1, 2, 3, 5, 5, 9], [1, 2, 3, 5, 5, 5, 9], [1, 2, 3, 5, 5, 5, 8, 9]]

  • আমরা তখন খুব শেষ উপাদান গ্রহণ করা এবং এটা শুরুতে সরান: [[1], [5, 1], [5, 1, 2], [5, 1, 2, 3], [5, 1, 2, 3, 5], [9, 1, 2, 3, 5, 5], [9, 1, 2, 3, 5, 5, 5], [9, 1, 2, 3, 5, 5, 5, 8]]

  • অবশ্যই, এখন কোডটি প্রতিটি সাবলিস্টের ব্যবহার করে সর্বশেষ উপাদানটি পেয়েছে θ- [1, 1, 2, 3, 5, 5, 5, 8](প্রথমটি নির্বিচার মান হিসাবে।




1

জাপট , 12 10 বাইট

আউটপুট অ্যারেটি ইনপুট অ্যারেতে প্রথম উপাদানটি পছন্দসই ক্রম অনুসরণ করে।

£¯YÄ n< g1

এটা পরীক্ষা করো


ব্যাখ্যা

অ্যারের অন্তর্নিহিত ইনপুট U

£

মানচিত্র শেষ U, Yবর্তমান সূচি কোথায় index

¯YÄ

স্লাইস Uথেকে 0থেকে Y+1

n<

অধোগামী করে সাজানো.

g1

দ্বিতীয় উপাদান পান।

সুস্পষ্টভাবে ফলাফল অ্যারে আউটপুট।


1

এমএটিএল , ১৯ 10 বাইট

লুই মেন্ডোকে 9 বাইট শেভ করার জন্য ধন্যবাদ!

"GX@:)SP2)

এখানে চেষ্টা করুন

ব্যাখ্যা

"GX@:)SP2)
"                  for all the values in the input
 G                 get input
  X@:)             get values up to the iteration
      SP           sort it in descending order
        2)         get the second value
                   implicit end of loop and output

@ লুইস মেন্ডো বাহ! এমএটিএল সম্পর্কে আমি কতটা জানি তা দেখাতে চলে যায়। সাহায্যের জন্য ধন্যবাদ!
ড্যানএইমন


1

ওহম , 10 8 বাইট

-2 বাইট ETH প্রডাকশন ধন্যবাদ।

∙p»îS2~ª

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

আহ, এটি অদ্ভুত তবে আমি জানি না কীভাবে নেতিবাচক সংখ্যার দিকে চাপ দেওয়া যায় ... আমি ওহমকে সত্যই জানি না । : P: P


1
ঠিক আছে, 0 2-খুব অদ্ভুত বলে মনে হচ্ছে ...
মিঃ এক্সকডার

1
কেবল দস্তাবেজের দিকে তাকানো (আমি ওহম সম্পর্কে কিছুই জানি না), আপনি কি করতে পারেন 2~?
ইটিএইচ প্রডাকশনগুলি 11-18 ই

@TEHProductions ওহ, আরও ভাল। ধন্যবাদ!
সম্পূর্ণরূপে



0

সুইফট 3 , 67 বাইট

func g(l:[Int]){print((1..<l.count).map{l[0...$0].sorted()[$0-1]})}

পরীক্ষা স্যুট.

সুইফট 3 , 65 বাইট

{l in(1..<l.count).map{l[0...$0].sorted()[$0-1]}}as([Int])->[Int]

পরীক্ষা স্যুট.


এগুলি কীভাবে চালাবেন?

প্রথমটি হ'ল একটি সম্পূর্ণ ফাংশন যা ফাংশন প্যারামিটার হিসাবে ইনপুট নেয় এবং ফলাফল মুদ্রণ করে। আপনি পরীক্ষার লিঙ্কে প্রদর্শিত হিসাবে ঠিক সেগুলি ব্যবহার করতে পারেন। যদিও আমি নির্দেশাবলী যুক্ত করার সিদ্ধান্ত নিয়েছি, কারণ দ্বিতীয় ধরণের ফাংশন খুব কমই ব্যবহৃত হয় এবং বেশিরভাগ মানুষ এর অস্তিত্ব সম্পর্কেও জানেন না। ব্যবহার:

g(l: [1, 1, 2, 2, 3, 3, 4] )

দ্বিতীয়টি লাম্বাদের মতো একটি বেনামি ফাংশন function আপনি একে পাইথনটি করার মতো করেই এটি ব্যবহার করতে পারেন, ভেরিয়েবল ঘোষণা করে fএবং কল করছেন:

var f = {l in(1..<l.count).map{l[0...$0].sorted()[$0-1]}}as([Int])->[Int]

print(f([1, 1, 2, 2, 3, 3, 4]))

বা বন্ধনীগুলির মধ্যে এটি মোড়ানো এবং সরাসরি এটি কল করুন ( (...)(ArrayGoesHere)):

print(({l in(1..<l.count).map{l[0...$0].sorted()[$0-1]}}as([Int])->[Int])([1, 1, 2, 2, 3, 3, 4]))

0

পিএইচপি, 53 বাইট

for(;a&$n=$argv[++$i];rsort($a),print$a[1]._)$a[]=$n;

কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নেয়। আউটপুট সীমাবদ্ধ, সীসা এবং সেমিকোলার দ্বারা অনুসরণ করা। এটি
দিয়ে চালান -nrবা অনলাইনে চেষ্টা করুন

পিএইচপি 7.1 এ একটি সতর্কতা সরবরাহ করে; ঠিক করার a&সাথে প্রতিস্থাপন ""<
বা ব্যবহার করুন for(;++$i<$argc;rsort($a),print$a[1]._)$a[]=$argv[$i];(54 বাইট)


0

গণিত 42 বাইট

@ জেনি_ম্যাথির সাথে খুব একই অনুরূপ উত্তর হলেও স্বতন্ত্রভাবে 3 বাইট সংক্ষিপ্ত আকারে এসেছিলেন

Sort[#[[;;i]]][[-2]]~Table~{i,2,Length@#}&

অনুধাবন করা হয়েছে যে 1 ম রানিং স্যাক্সটি কেবল 15 বাইট এবং দুটি ফাংশন কল গ্রহণ করে !:

Max~FoldList~#&

এটি এত সংক্ষিপ্তভাবে করা যেতে পারে কারণ Maxবৈশিষ্ট্যগুলি রয়েছে Flatএবং OneIdentityতবে এটি সত্য নয়RankedMax যার এটি যৌক্তিক প্রতিস্থাপন হবে। দুর্ভাগ্যক্রমে বৈশিষ্ট্যগুলি সংজ্ঞায়িত করা বা বিদ্যমান ফাংশনগুলিতে সেগুলি সংশোধন করা অনেকগুলি বাইট গ্রহণ করে, সুতরাং চাটুকারিতা অন্য উপায়ে করতে হবে।

নবম চলমান ম্যাক্সের সমস্তটি 48 বাইটে পাওয়া যাবে:

PadLeft[Sort/@Flatten/@FoldList[{##}&,{},#&@#]]&

0

পাইথ, 15 বাইট

FNr2hlQ@_S<QN1

এটি এখানে চেষ্টা করুন: https://pyth.herokuapp.com/?code=FNr2hlQ%40_S%3CQN1&input=%5B1%2C+5 % 2C+2%2C+3%2C+5%2C+9% 2C+5% 2C + + 8% 5D & ডিবাগ = 0

ব্যাখ্যা

FNr2hlQ - 2 <= N <= তালিকার দৈর্ঘ্যের সাথে লুপের জন্য

@_S<QN1 - দ্বিতীয় উপাদান যখন তালিকার প্রথম এন উপাদানগুলি ক্রমবর্ধমান ক্রমে বাছাই করা হয় এবং তারপরে বিপরীত হয় (উতরান ক্রমে সাজানো)




0

জাভাস্ক্রিপ্ট (ES6), 43 51 বাইট

সম্পাদনা করুন: সংখ্যা বাছাই করা কাঙ্ক্ষিত হওয়ায় 8 বাইট যুক্ত করা হয়েছে। :(

a=>a.map((_,b)=>a.slice(0,b+1).sort((a,b)=>b-a)[1])

এটি এখানে রাখা, যদিও এটি সংক্ষিপ্ত হিসাবে সরবরাহ করে তবে একটি শব্দভিত্তিক ক্রম চায়:

a=>a.map((_,b)=>a.slice(0,b+1).sort()[b-1])

উভয় এক্সপ্রেশন উত্পাদন undefined প্রথম উপাদান জন্য ।

পরীক্ষার কোড


নোট করুন যে আমি বিদ্যমান জেএস পোস্টটি খ্যাতি সিস্টেমের জন্য না হলে কেবল মন্তব্য করতে পছন্দ করতাম।
অ্যারন হিল

পিপিসিজিতে আপনাকে স্বাগতম! আমি 50-rep মন্তব্য থ্রোহোল্ডটি পছন্দ করি না তবে আমার ধারণা স্প্যামারদের মন্তব্য করা থেকে বিরত রাখতে তাদের এটি প্রয়োজন need যাই হোক, আমার মনে হয় ব্যর্থ হন ইনপুট একটি ডবল অঙ্ক সংখ্যা উপস্থিত রয়েছে করবে যেমন 10, যেমন .sort()lexicographically ডিফল্টরূপে প্রকারের (অর্থাত 1,10,100,11,12,13, ..., 2,20,21, ...)। (a,b)=>a-bএটি সংখ্যার অনুসারে বাছাই করার জন্য আপনাকে অন্তর্ভুক্ত বা অনুরূপ করতে হবে।
ইটিএইচ প্রডাকশনগুলি

ধন্যবাদ, @ ইথ প্রডাকশনস। আমি সংখ্যার অর্ডারের জন্য আপডেট করেছি, যার অর্থ এটি এখন আর যথেষ্ট ভাল নয়। আচ্ছা ভালো.
অ্যারোন হিল

0

ক্লোজার, 56 বাইট

#(for[i(drop 2(reductions conj[]%))](nth(sort-by - i)1))

এই উপসর্গগুলি উত্পন্ন করার জন্য আরও ভাল উপায় হতে পারে।

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