Narcissistic सरणी तत्व


15

परिभाषा

एक सरणी के नार्सिसिस्टिक 1 पूर्णांक सोचते हैं कि वे अपने पड़ोसियों से बेहतर हैं, क्योंकि वे अपने अंकगणित माध्य से कड़ाई से अधिक हैं।

पड़ोसियों को निम्नानुसार परिभाषित किया गया है:

  • यदि पूर्णांक इंडेक्स 0 (पहले) पर है, तो उसके पड़ोसी सूची के अंतिम और दूसरे तत्व हैं।

  • यदि पूर्णांक प्रथम या अंतिम नहीं है, तो उसके पड़ोसी दो निकटवर्ती तत्व हैं।

  • यदि पूर्णांक इंडेक्स -1 (अंतिम) पर है, तो उसके पड़ोसी सूची के दूसरे-अंतिम और पहले तत्व हैं।


कार्य

पूर्णांक की एक सरणी को देखते हुए, आपका कार्य मादक पदार्थों को त्यागना है।

  • पूर्णांक धनात्मक, ऋणात्मक या शून्य हो सकते हैं।

  • आप मान सकते हैं कि सरणी में कम से कम तीन तत्व हैं।

  • सभी मानक नियम लागू होते हैं। यह , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है।

उदाहरण

सरणी पर विचार करें [6, 9, 4, 10, 16, 18, 13]। फिर हम निम्नलिखित तालिका बना सकते हैं:

तत्व | पड़ोसी | पड़ोसियों का मतलब | क्या नार्सिसिस्टिक है?
-------- + ------------ + ------------------ + --------- --------
6 | 13, 9 | 11 | असत्य।
9 | 6, 4 | 5 | सच।
4 | 9, 10 | 9.5 | असत्य।
10 | 4, 16 | 10 | असत्य।
16 | 10, 18 | 14 | सच।
18 | 16, 13 | 14.5 | सच।
13 | 18, 6 | 12 | सच।

Narcissistic वाले को फ़िल्टर करके, हमें छोड़ दिया जाता है [6, 4, 10]। और बस!

परीक्षण के मामलों

इनपुट -> आउटपुट

[५, -8, -९] -> [-,, -९]
[8, 8, 8, -] -> [8, 8, 8, 8]
[११, ६, ९, १०] -> [६, १०]
[१, २, ०, १, २] -> [१, ०, १]
[६, ९, ४, १०, १६, १ 4, १३] -> [६, ४, १०]
[6, -5, 3, -4, 38, 29, 82, -44, 12] -> [-5, -4, 29, -44]

1 - Narcissist का अर्थ गणितीय रूप से Narcissistic नहीं है ।

जवाबों:


7

जेली , 10 बाइट्स

ṙ2+ṙ-<ḤCx@

इसे ऑनलाइन आज़माएं!

स्पष्टीकरण:

ṙ2+ṙ-<ḤCx@
ṙ2         Rotate the original list two elements to the left
  +        Add each element to the respective element of the original list
   ṙ-      Rotate the result one element to the right
     <Ḥ    Check if each element is less than the double of its respective element on the original list
       C   Subtract each 1/0 boolean from 1 (logical NOT in this case)
        x@ Repeat each element of the original list as many times as the respective element of the logical NOT (i.e. keep elements of the original list where the respective element from the result is 1)


6

जावास्क्रिप्ट (ईएस 6), 57 56 बाइट्स

a=>a.filter((e,i)=>e+e<=a[(i||l)-1]+a[++i%l],l=a.length)

संपादित करें: @ g00glen00b के लिए 1 बाइट धन्यवाद सहेजा गया।


5

मैथेमेटिका, 44 बाइट्स

Pick[#,#<=0&/@(2#-(r=RotateLeft)@#-#~r~-1)]&

यह काम किस प्रकार करता है

दिए गए इनपुट जैसे कि {11,6,9,10}, गणना करता है

2*{11,6,9,10} - {6,9,10,11} - {10,11,6,9}

और उन स्थानों पर मूल इनपुट के तत्वों को चुनता है जहां यह परिणाम सबसे अधिक 0 पर है।



4

हास्केल , 51 बाइट्स

f s=[b|(a,b,c)<-zip3(last s:s)s$tail$s++s,b*2<=a+c]

इसे ऑनलाइन आज़माएं! उपयोग उदाहरण: f [1,2,3]पैदावार [1,2]

के लिए s = [1,2,3], last s:sसूची [3,1,2,3]और tail$s++sसूची है [2,3,1,2,3]। तीन दी गई सूची में से zip3त्रिगुणों की एक सूची बनाता है (a,b,c), जो सबसे लंबी सूची को सबसे छोटी सूची में विभाजित करता है। हम मूल सूची तत्व होने के [(3,1,2),(1,2,3),(2,3,1)]साथ bऔरa और cउसके पड़ोसी । सूची की समझ तब सभी का चयन करती है , bजहां यह मादक नहीं है।b*2<=a+cb


4

सप्टक / MATLAB, 48 बाइट्स

@(x)x(conv([x(end),x,x(1)],[1,-2,1],'valid')>=0)

इसे ऑनलाइन आज़माएं!

व्याख्या

इनपुट ऐरे को सबसे पहले अंतिम के साथ बढ़ाया जाता है (x(end) ) और पहले ( x(1)) प्रविष्टियों के साथ उपयुक्त पक्षों पर ।

convनशीलेपन के लिए परीक्षण विस्तारित सरणी को ओवलिंग करके [1, -2, 1]और केवल रखने के द्वारा किया जाता है'valid' भाग भाग को ।

कनवल्शन के परिणाम में प्रत्येक प्रविष्टि की तुलना 0एक तार्किक सूचकांक (मास्क) देता है, जिसका उपयोग इनपुट से संख्याओं का चयन करने के लिए किया जाता है।



2

जाप , 17 16 15 बाइट्स

kÈ>½*[Y°ÉY]x!gU

कोशिश करो


व्याख्या

सरणी का निहित इनपुट U

kÈ>

निकालें ( k) तत्व जो एक फ़ंक्शन के माध्यम से पारित होने पर सही वापस आते हैं, Yवर्तमान सूचकांक होने के साथ , यह जांचें कि क्या वर्तमान तत्व अधिक है ...

[Y°ÉY]

सरणी [Y-1, Y+1]...

x!gU

xप्रत्येक तत्व को अनुक्रमित करने के बाद जोड़ ( ) में कमी U...

½*

द्वारा गुणा किया जाता है .5


वैकल्पिक, 15 बाइट्स

fÈ+X§UgYÉ +UgYÄ

कोशिश करो


2

आर , 51 56 बाइट्स

मेरे एल्गोरिथ्म को सही करने के लिए user2390246 का धन्यवाद

function(l)l[c(l[-1],l[1])+c(l[s<-sum(l|1)],l[-s])>=2*l]

इसे ऑनलाइन आज़माएं!

अनुक्रमित lजहां c(l[-1],l[1])+c(l[s],l[-s]), के पड़ोसी- sums l, दो बार से कम नहीं हैं l


2

गणितज्ञ, 40 बाइट्स

Pick[#,+##>=3#2&@@@Partition[#,3,1,-2]]&

मुझे लगता है कि आपको <=इसके बजाय की आवश्यकता है <
मार्टिन एंडर

वास्तव में नहीं, आपको आवश्यकता होगी >=
मार्टिन एंडर

@MartinEnder आह, आप सही कह रहे हैं। मुझे Pickगैर-नस्लीय संख्याओं के लिए जाना है।
जुंगवान मिन ऑक्ट



1

जावा 8, 141 137 127 बाइट्स

import java.util.*;a->{List r=new Stack();for(int i=0,l=a.length;i<l;)if(2*a[i]<=a[(i-1+l)%l]+a[++i%l])r.add(a[i-1]);return r;}

-10 बाइट्स थैंक्स टू @ नवे

स्पष्टीकरण:

इसे यहाँ आज़माएँ।

import java.util.*;    // Required import for List and Stack

a->{                   // Method with integer-array parameter and List return-type
  List r=new Stack();  //  Return-list
  for(int i=0,         //  Index integer, starting at 0
      l=a.length;      //  Length of the input array
      i<l;)            //  Loop over the input array
    if(2*a[i]<=        //   If two times the current item is smaller or equal to:
        a[(i-1+l)%l]   //   The previous integer in the list
        +a[++i%l])     //   + the next integer in the list
      r.add(a[i-1]);   //    Add the current integer to the result-list
                       //  End of loop (implicit / single-line body)
  return r;            //  Return result-List
}                      // End of method


0

जावास्क्रिप्ट ईएस 5, 59 बाइट्स

F=a=>a.filter((x,i)=>2*x<=a[-~i%(l=a.length)]+a[(i-1+l)%l])

console.log(""+F([5, -8, -9])==""+[-8, -9])
console.log(""+F([8, 8, 8, 8])==""+[8, 8, 8, 8])
console.log(""+F([11, 6, 9, 10])==""+[6, 10])
console.log(""+F([1, 2, 0, 1, 2])==""+[1, 0, 1])
console.log(""+F([6, 9, 4, 10, 16, 18, 13])==""+[6, 4, 10])
console.log(""+F([6, -5, 3, -4, 38, 29, 82, -44, 12])==""+[-5, -4, 29, -44])




हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.