সেখানে কি কোনও গুচ্ছ?


39

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

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

এটি তাই কম বাইট ভাল হওয়ার সাথে বাইটে উত্তরগুলি দেওয়া হবে।

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

[] -> False
[1] -> False
[1,2] -> False
[1,2,1] -> True
[1,2,2] -> False
[1,2,3] -> False
[1,2,2,1] -> False
[1,2,2,3] -> False
[1,2,1,2] -> True
[1,3,2] -> True
[3,1,2] -> True
[2,2,2] -> False

5
পরীক্ষার কেসের অনুরোধ: 0-1-2-3 ব্যতীত অন্যান্য নম্বরগুলিও কি নেতিবাচকভাবে অনুমোদিত / অনুমোদিত নয়?
যাদু অক্টোপাস উরন

প্রস্তাবিত পরীক্ষার কেস: [1,3,3](ডেনিসের অ্যালগরিদম ব্যবহার করে উত্তরগুলি কেবল নিজেরাই বর্ধিতকরণের পরিবর্তে
বর্ধনের

1
@ETH প্রোডাকশনস ইতিমধ্যে এটি দ্বারা আবৃত হয় না [1,2,2]? নাকি আমি কিছু মিস করছি?
নিক হার্টলি

2
@ নিক হার্টলি, এর বদ্বীপগুলি del ডেল্টার [1,2,2]চিহ্ন হিসাবে একই তবে এটি তেমন হয়নি [1,3,3]
শেগি

উত্তর:


15

জেলি , 5 বাইট

IṠIỊẠ

ফেরত পাঠায় 0 একটি আচমকা, আছে কিনা 1 যদি না।

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

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

IṠIỊẠ  Main link. Argument: A (integer array)

I      Increments; take all forward differences of A.
 Ṡ     Take the signs.
       The signs indicate whether the array is increasing (1), decreasing (-1), or
       constant at the corresponding point. A 1 followed by a -1 indicates a local
       maximum, a -1 followed by a 1 a local minimum.
  I    Increments; take the forward differences again.
       Note that 1 - (-1) = 2 and (-1) - 1 = -2. All other seven combinations of
       signs map to -1, 0, or 1.
   Ị   Insignificant; map each difference d to (-1 ≤ d ≤ 1).
    Ạ  All; return 1 if all differences are insignificant, 0 if not.

1
"বৃদ্ধি" কি? কি বৃদ্ধি করা হচ্ছে এবং কি করে?
গম উইজার্ড

1
@ ওয়েইট উইজার্ড আমি মনে করি যে এটি 05AB1E এর ডেল্টাস (¥) কমান্ডের সমতুল্য: একটি অ্যারে [n0, n1, n2, n3] খোলা হয়েছে এবং অ্যারে [n1-n0, n2-n1, n3-n2] টিপানো হয়েছে।
কলডো

10

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

একটি বুলিয়ান ফেরত দেয়।

a=>a.some(x=n=>x*(x=a<n|-(a>(a=n)))<0)

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

কিভাবে?

আমরা n এর পূর্বের মানটি সংরক্ষণ করতে একটি ব্যবহার করি । আমরা সেট এক্স থেকে 1 যদি একটি <এন , -1 যদি একটি> এন বা 0 যদি একটি = ঢ । এবং আমরা পরীক্ষা করি যে old_x * x <0 , যা কেবল তখনই সম্ভব (( old_x = 1 এবং x = -1 ) বা ( old_x = -1 এবং x = 1 )।

যেহেতু এক্স কিছু () এর বেনাম কলব্যাক ফাংশন থেকে আরম্ভ করা হয়েছিল , এটি প্রথম পুনরাবৃত্তির সময় NaN তে জোর করা হয় , যা পরীক্ষাকে মিথ্যা বলে।


এটি কঠোর মোডে নিক্ষেপ করবে।
আলুয়ান হাদাদ

2
@ অ্যালুয়ানহাদাদাদ ওয়েল, কেবলমাত্র অঘোষিত ভেরিয়েবলের কারণে জেএস গল্ফড কোডের 99% কড়া মোডে ফেলে দেবে। পিপিসিজি এবং কোডেরভিউ ভালভাবে মেশে না। : পি
আরনাউল্ড

এটা ঠিক, আমি গল্ফের জন্য খুব বেশি কিছু না।
আলুয়ান হাদাদ

4
তারপরে কেন এই বিষয়ে মন্তব্য করা উচিত হোল
মার্ক সি।

8

হাস্কেল , 42 বাইট

any(<0).f(*).f(-)
f a b=zipWith a b$tail b

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

ব্যাখ্যা

প্রথমে আমাদের কাছে ফাংশন রয়েছে fযা বাইনারি ফাংশন এবং একটি তালিকা নেয় এবং বাইনারি ফাংশনটি তালিকার প্রতিটি সংলগ্ন জোড়াতে প্রয়োগ করে।

তারপরে আমাদের মূল কাজটি f(-)ইনপুট তালিকার জন্য প্রযোজ্য । এটি পার্থক্য তালিকা গণনা করে। তারপরে আমরা f(*)তালিকায় প্রতিটি সংলগ্ন জোড়াকে গুণিত করতে আবেদন করি । শেষ পর্যন্ত আমরা জিজ্ঞাসা করি যে কোনও জুড়ি শূন্যের চেয়ে কম কিনা।

শেষ তালিকার একটি সংখ্যা কেবলমাত্র negativeণাত্মক হতে পারে যদি এটি তফাত তালিকার থেকে নেতিবাচক এবং ধনাত্মক সংখ্যার পণ্য হয়। এইভাবে একটি নেতিবাচক এন্ট্রি তৈরি করতে (এবং তারপরে সত্যটি ফিরে আসার জন্য) মূল তালিকাটি ক্রমবর্ধমান থেকে হ্রাস বা বিপরীত দিকে স্যুইচ করতে হবে, এটির অবশ্যই এটি একটি দ্বিধা থাকা উচিত।


খালি তালিকা মোকাবেলা করার দুর্দান্ত উপায়!
লাইকোনি


5

চিত্র প্যাকেজ সহ অক্টেভ , 34 32 বাইট

@ স্টিভিগ্রিফিনকে 2 বাইট সংরক্ষণ করা হয়েছে !

@(x)0||prod(im2col(diff(x),2))<0

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

ব্যাখ্যা

ক্রমাগত পার্থক্য গণনা করে, তাদের দৈর্ঘ্যের 2 স্লাইডিং ব্লকগুলিতে ব্যবস্থা করে, প্রতিটি ব্লকের পণ্য গ্রহণ করে এবং এই জাতীয় কোনও পণ্য নেতিবাচক কিনা তা পরীক্ষা করে।


0||prod(...)2 বাইট সংরক্ষণ আপনি সম্পূর্ণ anyঅংশটি এড়িয়ে যেতে পারেন এবং 5 বাইট সংরক্ষণ করতে ডিফল্ট সত্য / মিথ্যা সংজ্ঞা ব্যবহার করতে পারেন ।
স্টিভি গ্রিফিন

ডার্ন, 5 বাইট সংরক্ষণ করা আপনার সমাধানটিকে আমার চেয়ে খাটো করে তুলবে :( চিত্র প্যাকেজটির দুর্দান্ত ব্যবহার N এটি টিআইওতে ছিল তা আমি জানতাম না
স্টিভি গ্রিফিন

1
@ স্টেভিগ্রিফিন যেহেতু চ্যালেঞ্জটির জন্য দুটি ধারাবাহিক মান প্রয়োজন আমি মুছে ফেলতে পারি না any0||ধারণার জন্য ধন্যবাদ !
লুইস মেন্ডো

4

আর, 48 বাইট

function(x)any(apply(embed(diff(x),2),1,prod)<0)

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

এটি সি (1,4,1,4) উদাহরণস্বরূপ ব্যবহার করে কীভাবে ধাপে ধাপে কাজ করে:

> x=c(1,4,1,4)
> diff(x)
[1]  3 -3  3
> embed(diff(x),2)
     [,1] [,2]
[1,]   -3    3
[2,]    3   -3
> apply(embed(diff(x),2),1,prod)
[1] -9 -9
> any(apply(embed(diff(x),2),1,prod)<0)
[1] TRUE

বোনাস হিসাবে, প্যাকেজ ব্যবহার করে অনুরূপ দৈর্ঘ্য এবং ধারণার একটি সমাধান zoo:

function(x)any(zoo::rollapply(diff(x),2,prod)<0)

1
ঝরঝরে! স্বরে নোট: মনে রাখবেন embedবিদ্যমান। এটা খুবই খারাপ যে rowProdsএবং colProdsআর এ alias লেখা যেমন কোন অস্তিত্ব নেই
: Giuseppe

1
@ জিউসেপ্প হতাশার হাতছাড়া হয়ে আসলে আমি তাদের পরীক্ষা করে দেখলাম যে তাদের অস্তিত্ব আছে কিনা :) তবে প্রকৃত পক্ষে rowSumsএবং rowMeans...
প্ল্যানাপাস

1
ভাল, কমপক্ষে দস্তাবেজগুলি অনুসন্ধান করে, .colSumsঅতিরিক্ত ইনপুটগুলির উপর ভিত্তি করে ম্যাট্রিক্সে ইনপুটটিকে পুনরায় আকার দেবে যা সম্ভবত কোথাও গল্ফিং অ্যাপ্লিকেশন রয়েছে .... এখন আমাকে কেবল একটি সন্ধান করতে হবে!
জিউসেপ

@ গুয়াস্পেপ: matrixStatsপ্যাকেজের কার্যকারিতা দেখুন ।
মাইকেল এম

@ মিশেলএম দুর্ভাগ্যক্রমে প্যাকেজের নাম দৈর্ঘ্যের কারণে এটি এটিকে প্রতিযোগিতামূলক করে তোলে না (57 বাইট function(x)any(matrixStats::colProds(embed(diff(x),2)))<0:)। কোড গল্ফ ব্যতীত অন্য যে কোনও কিছুর জন্য, এই প্যাকেজটি সত্যই একটি ধনসম্পদ।
প্ল্যানাপাস


3

পার্ল 6 , 39 বাইট

{so~(.[1..*]Zcmp$_)~~/'re L'|'s M'/}

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

$_এই বেনামে তালিকার তালিকার যুক্তি। .[1..*]একই তালিকা, তবে প্রথম উপাদানটি বাদ পড়ে। অপারেটরের Zcmpসাথে দুটি তালিকা একসাথে জিপ করুন cmp, ফলস্বরূপ Orderমানগুলির একটি তালিকা । উদাহরণস্বরূপ, একটি ইনপুট তালিকার জন্য 1, 2, 2, 2, 1এটি তালিকার ফলস্বরূপ More, Same, Same, Less

এখন আমাদের কেবল তা জানতে হবে যে তালিকায় দুটি সংলগ্ন উপাদান রয়েছে More, Lessবা আছে Less, More। কৌতুক আমি ব্যবহার সঙ্গে একটি শূণ্যস্থান স্ট্রিং তালিকা রূপান্তর করতে হয় ~, তারপর পরীক্ষা কিনা এটা হয় সাবস্ট্রিং রয়েছে re Lবা s M। (প্রথমটি কেবলমাত্র "ই" দিয়ে শেষ হওয়ার e Lকারণে হতে পারে না Same))

স্মার্ট ম্যাচ অপারেটরটি কোনও Matchবস্তু ফেরত দেয় (যদি ম্যাচটি সফল হয়) অথবা Nil(যদি তা না হয়), সুতরাং soএটি যে কোনও কিছুই বুলিয়ান মানকে রূপান্তর করে।



3

রুবি , 55 46 বাইট

->a{a.each_cons(3).any?{|x,y,z|(y-x)*(y-z)>0}}

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

একটি ল্যাম্বদা একটি অ্যারে গ্রহণ করে এবং বুলিয়ান ফিরিয়ে দেয়।

-9 বাইট: প্রতিস্থাপন (x<y&&y>z)||(x>y&&y<z)সঙ্গে (y-x)*(y-z)>0(ধন্যবাদ GolfWolf )

->a{
  a.each_cons(3)              # Take each consecutive triplet
    .any?{ |x,y,z|            # Destructure to x, y, z
      (y-x)*(y-z) > 0         # Check if y is a bump
    }
}

1
আমি মনে করি আপনি এর |পরিবর্তে ||1 বাইট সংরক্ষণ করতে পারবেন ।
Yytsi


'0 <(yx) * y- = z'
জিবি

3

PostgreSQL 173 বাইট

SELECT DISTINCT ON(a)a,x>j and x>k OR x<least(j,k)FROM(SELECT a,x,lag(x,1,x)OVER(w)j,lead(x,1,x)OVER(w)k FROM d WINDOW w AS(PARTITION BY rn ORDER BY xn))d ORDER BY 1,2 DESC;
     a     | c 
-----------+---
 {1}       | f
 {1,2}     | f
 {1,2,1}   | t
 {1,2,1,2} | t
 {1,2,2}   | f
 {1,2,2,1} | f
 {1,2,2,3} | f
 {1,2,3}   | f
 {1,3,2}   | t
 {2,2,2}   | f
 {3,1,2}   | t
(11 rows)

হ্যালো এবং সাইটে আপনাকে স্বাগতম। আমি পোস্টগ্রিসকিউএল এর সাথে পরিচিত নই তবে আপনি ব্যবহার করতে পারেন এমন সাদা অংশের পরিমাণ হ্রাস করতে সক্ষম হতে পারেন। সাধারণভাবে বেশিরভাগ ভাষায় আপনার ব্যবহৃত ধরণের ব্যবধানের বেশিরভাগ প্রয়োজন হয় না।
গম উইজার্ড

@ ওয়েট উইজার্ড এটি ডাটাবেসে নমুনা তথ্য, এটি অপ্রাসঙ্গিক।
ইভান ক্যারল

তাহলে আপনার কোড কি? আমরা ইনপুটটির পরিবর্তে ইনপুটটিকে সরাসরি কোডের মধ্যে প্রবেশ করার অনুমতি দিই না। যদি এখানে কেস হয় তবে আপনার এটি পুনর্লিখন করা উচিত যাতে এটি কোনও মানক পদ্ধতির মাধ্যমে ইনপুট নেয় ।
গম উইজার্ড

আপনার দেওয়া লিঙ্কটি থেকে @ ওয়েট উইজার্ড, কোডগল্ফ.মেটা.স্ট্যাকেক্সেঞ্জিং.com
ইভান ক্যারল

1
ঠিক আছে যদি আপনি যে ইনপুট ফর্ম্যাটটি ব্যবহার করেন তবে তা ঠিক আছে। ভাগ্য ভাল এখানে গল্ফিং, লোকেরা কম ব্যবহৃত ভাষাতে গল্ফ করা দেখতে ভাল লাগল।
গম উইজার্ড

3

জাভা 8, 108 104 101 86 84 79 72 বাইট

a->{int i=a.length,p=0;for(;i-->1;)i|=p*(p=a[i]-a[i-1])>>-1;return-i>1;}

-২ বাইট @ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ ।
-13 বাইট @ নেভায়ে ধন্যবাদ ।

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


1
84 বাইট । আমি পুনরাবৃত্তির ক্রম পরিবর্তন করেছি (নীচে যাচ্ছি), দুটি গুনের অপারেশনগুলিকে অদলবদল করেছিলাম এবং তারপরে একটি অতিরিক্ত অতিরিক্ত অপসারণ করতে পারি -1
অলিভিয়ার গ্রাগোয়ের

1
By৯ বাইট: a->{int i=a.length;for(;i-->2;)i|=(a[i]-a[--i])*(a[i]-a[i-1])>>-1;return-~i|3;}( -1সত্যবাদী মামলার জন্য প্রত্যাবর্তন, 3মিথ্যা মামলার ক্ষেত্রে) - বা, যদি কোনও ব্যতিক্রমের উপস্থিতি / অনুপস্থিতিকে রিটার্ন মান 55 বাইট হিসাবে ব্যবহার করে:a->{for(int i=0;++i>0;)i|=(a[i-1]-a[i])*(a[i]-a[i+1]);}
নেভায়ে

1
72 বাইট:a->{int i=a.length,p=0;for(;i-->1;)i|=p*(p=a[i]-a[i-1])>>-1;return-i>1;}
নেভায়ে

3

আর , 58 56 বাইট

function(x)any(abs(diff(sign(diff(c(NA,x)))))>1,na.rm=T)

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

জিউসেপিকে ধন্যবাদ 2 বাইট সংরক্ষণ করা


3
আপনি {}-২ বাইটের জন্য বন্ধনীগুলি থেকে মুক্তি পেতে পারেন ।
জিউসেপ

অতিরিক্ত হিসাবে, আমি মনে করি আপনি স্টিভি গ্রিফিনের পদ্ধতির 42 বাইটের
জিউসেপ

@ জিউস্পেপ, আমি মনে করি যে স্ট্যুই আমার পদ্ধতিটি পোর্ট করেছিলেন, এই পার্থক্যের সাথে যে আমার পরীক্ষার ক্ষেত্রে তালিকাভুক্ত খালি ভেক্টরকে সঠিকভাবে পরিচালনা করতে পারে।
আরের

c()হয় NULLযা পূর্ণসংখ্যার খালি ভেক্টর হিসাবে একই নয়, integer(0), মতলব মধ্যে যেহেতু []একটি হল double, ডিফল্ট অনুসারে কিন্তু আপনি তা এই ভাবে রাখতে চান তাহলে, যে পুরোপুরি যুক্তিসঙ্গত নয়।
জিউসেপে

3

জে , 16 15 বাইট

-1 বাইট ধন্যবাদ ফ্রাউনফ্রোগের জন্য

1 e.0>2*/\2-/\]

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

আসল: 16 বাইট

0>[:<./2*/\2-/\]

2-/\] - প্রতিটি সংলগ্ন আইটেমের পার্থক্য

2*/\ - প্রতিটি সংলগ্ন আইটেমের পণ্য

[:<./ - সর্বনিম্ন

0> - নেতিবাচক?

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


হ্যালো ! এটি কি এই সহজ স্পষ্ট রূপ 0> <./ 2 * / \ 2 - / \ (13 বাইট) ছোট করা যায় না?
ম্যাথিয়াস ডোলিডন

@ ম্যাথিয়াস ডোলিডন এটি দোভাষীতে কাজ করে তবে এখানে পিপিসিজিতে কিছু ইনপুট থাকলে ফাংশন (জে ক্রিয়া) সরবরাহ করা সাধারণ common ক্রিয়াটি যদি একরকম হয় তবে আমরা অ্যাসাইনমেন্ট f=.বাইটগুলি গণনা করি না । দয়া করে মনে রাখবেন যে আমি তুলনামূলকভাবে নতুন ব্যবহারকারী :)
গ্যালেন ইভানোভ

তাই আমিই আছি, এবং আপনি আমার জন্য বিধিটি পরিষ্কার করেছেন। ধন্যবাদ! :)
ম্যাথিয়াস ডলিডন


@ ফ্রাউনফ্র্যাগ আপনাকে ধন্যবাদ! মনে হচ্ছে আমি খুব কমই ই ব্যবহার করি। :)
গ্যালেন ইভানভ



2

সংযুক্তি , 39 বাইট

Any&:&{_*~?Sum[__]}@Slices&2@Sign@Delta

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

এটি কীভাবে সক্রিয় হয়েছিল তা নিয়ে বেশ খুশি।

ব্যাখ্যা

এটি চারটি ফাংশনের সংমিশ্রণ:

Delta
Sign
Slices&2
Any&:&{_*~?Sum[__]}

Deltaউপাদান মধ্যে পার্থক্য পায়। =

তারপরে, Signপ্রতিটি পার্থক্যে প্রয়োগ করা হয়, আমাদেরকে 1s, 0গুলি এবং -1s এর একটি অ্যারে প্রদান করে । =

তারপরে, Slices&2অ্যারের থেকে দুটি দৈর্ঘ্যের সমস্ত স্লাইস দেয়, সমস্ত জোড়া পার্থক্য দেয়।

শেষ অবধি, Any&:&{_*~?Sum[__]}ইনপুট জন্য সমতুল্য x:

Any[&{_*~?Sum[__]}, x]
Any[[el] -> { el[0] and not (el[0] + el[1] = 0) }, x]

এটি শূন্য নয় এমন উপাদানগুলির সন্ধান করে। যদি এই জাতীয় কোনও জুটির উপাদান বিদ্যমান থাকে তবে একটি গণ্ডগোল রয়েছে।




2

অক্টাভা , 33 বাইট

@(x)0||abs(diff(sign(diff(x))))>1

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

ব্যাখ্যা:

@(x)                           % Anonymous function taking x as input
                  diff(x)       % Takes the difference between consecutive elements
             sign(diff(x))      % The sign of the differences
        diff(sign(diff(x)))     % The difference between the signs
    abs(diff(sign(diff(x)))>1   % Check if the absolute value is 2
@(x)abs(diff(sign(diff(x)))>1   % Output as matrices that are treated truthy or falsy

2

ব্র্যাচল্যাগ , 10 বাইট

s₃.¬≤₁∧¬≥₁

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

একটি গলদা থাকলে ( true.) সাফল্য হয়, এবং false.কোনও ডাব না থাকলে ( ) ব্যর্থ হয়।

ব্যাখ্যা

এটি ইতিমধ্যে মোটামুটি পাঠযোগ্য:

s₃.           There is a substring of the input…
  .¬≤₁        …which is not non-decreasing…
      ∧       …and…
       ¬≥₁    …which is not non-increasing

2

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

¥ü‚P0‹Z

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

ব্যাখ্যা

¥         # calculate delta's
 ü‚       # pair each element with the next element
   P      # product of each pair
    0‹    # check each if less than 0
      Z   # max

0‹মূলত নেতিবাচক চিহ্নের জন্য নম্বরটি পরীক্ষা করে এমন কোনও 1 বাইট বিকল্প ছিল না ?
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টোপাস ইউরন: dকেবলমাত্র স্ট্যাকের সেই শীর্ষটি যাচাই করতে ব্যবহৃত [0-9]যা আমরা এখানে যা চাই তার বিপরীত। তবে এখন এটি আরও বুদ্ধিমান এবং নেতিবাচক / ভাসমানগুলিও সংখ্যা হিসাবে গণনা করা হয়।
এমিগিনা

আহ্ ... কায়া শপথ aকরে negativeসাইন দেখেছে এবং সত্য বা কিছু ফিরে এসেছে ... তবে আমি মনে করি আপনি ঠিক বলেছেন, আমি আপনার dকৌশলটি মনে করছি ।
ম্যাজিক অক্টোপাস আরন

2

ব্র্যাচল্যাগ , 10 বাইট

s₃s₂ᶠ-ᵐ×<0

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

@ ফ্যাটালাইজের বিদ্যমান 10 বাইট উত্তরের মতো প্রায় পরিচ্ছন্ন এবং মার্জিত নয়, তবে এটি কার্যকর!

s₃   % There exists a substring of three elements [I,J,K] in the array such that

s₂ᶠ  % When it's split into pairs [[I,J],[J,K]]

-ᵐ   % And each difference is taken [I-J, J-K]

×    % And those differences are multiplied (I-J)*(J-K)
     % (At a bump, one of those will be negative and the other positive. 
     % At other places, both differences will be positive, or both negative, 
     %  or one of them 0 - ultimately resulting in a non-negative product.)

<0   % The product is negative



1

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

lambda l:any(p>c<n or p<c>n for p,c,n in zip(l,l[1:],l[2:]))

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

খুব একই জিনিস, ভেবেছিলাম এটি আরও সংক্ষিপ্ত হবে যদিও ...

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

f=lambda l:l[3:]and(l[0]>l[1]<l[2]or l[0]<l[1]>l[2]or f(l[1:]))

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


1
পরিবর্তে 58 গুণ বাইট ব্যবহার করুন
Shieru Asakoto

1

পাইট , 11 7 বাইট

₋ʁ*0<Ʃ±

কোনও আড়াল থাকলে আউটপুট 1, অন্যথায় 0

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

পোর্ট অফ গম উইজার্ডের হাস্কেল উত্তর


পুরানো উপায় (11 বাইট):

₋±₋Å1≤ĐŁ↔Ʃ=

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

সত্যিই অন্যথায় কোনও গোঁজ থাকলে মিথ্যা ফিরিয়ে দেয়

পোর্ট অফ ডেনিস 'জেলি উত্তর


1

ওল্ফ্রাম ল্যাঙ্গুয়েজ (ম্যাথমেটিকা) , 37 36 বাইট

FreeQ[(d=Differences)@Sign@d@#,-2|2]&

পরীক্ষার মামলার উত্তরগুলির বিপরীতে দেয় (মিথ্যা এবং সত্য বিপরীত)। !স্বাভাবিক ফর্মে স্যুইচ করতে একটি প্রস্তুত করুন ।

অথবা

Abs@(d=Differences)@Sign@d@#~FreeQ~2&

বিপরীত আউটপুট, তাই স্বাভাবিক ফর্ম জন্য FreeQসঙ্গে প্রতিস্থাপন MatchQ

ব্যাখ্যা: ক্রমের পার্থক্যের চিহ্নটি নিন Take যদি ফলাফলের ক্রমটিতে {1, -1} বা {-1,1 includes অন্তর্ভুক্ত থাকে তবে একটি দ্বিধা রয়েছে। উভয় ক্ষেত্রে {1, -1} বা {-1,1} এর পার্থক্যটির মান 2।

চূড়ান্ত মানটি না দিয়ে চূড়ান্ত তালিকাটি স্কোয়ার করে অন্য বাইটটি শেভ করুন:

FreeQ[(d=Differences)@Sign@d@#^2,4]&

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


1

পার্ল, 35 বাইট

+3জন্য অন্তর্ভুক্ত-p

bump.pl:

#!/usr/bin/perl -p
s%\S+ %$a*1*($a=$&-$')%eg;$_=/-/

হিসাবে চালান:

bump.pl <<< "3 1 2"

1

জুলিয়া 0.6 , 57 56 বাইট

l->any(p>c<n||p<c>n for(p,c,n)=zip(l,l[2:end],l[3:end]))

মূলত কেবল সম্পূর্ণরূপে অজগর উত্তর। ইউজার 71546 থেকে -1 বাইট

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

জুলিয়া 0.6 , 39 বাইট

f(x,y,z,a...)=x>y<z||x<y>z||f(y,z,a...)

লিসি পুনরাবৃত্তি শৈলী, ওরফে ডেনিসের অজগর উত্তর। রিটার্নস trueযখন একটি আচমকা বিদ্যমান, অন্যথায় একটি ত্রুটি ছোঁড়ার। এটি সম্ভবত 42 বাইট হতে হবে যেহেতু কল করার সময় আপনার এটি স্প্লিট করতে হবে। যেমন a=[1,2,1]আপনি কল হিসাবে f(a...)f(a)=f(a...)এই প্রয়োজনটি সরিয়ে ফেলবে, তবে এটি দীর্ঘতর। আমার আরও ভাল পুনরাবৃত্তি হওয়া দরকার, এবং আমি সত্যিই এমন কোনও কোড লিখতে পছন্দ করি না যা একটি ত্রুটি ছুড়ে দেয়।

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


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