Quote (CyberPunk666 @ 8 Aug 2014 17:54)
szerintem is.
Ezért kéne annyi az elejére, hogy
Code
if(a[0] > a[1])
{
legnagyobb=a[0];
masodik_legnagyobb = a[1];
}
else
{
legnagyobb=a[1];
masodik_legnagyobb = a[0];
}
Én ezt írtam, de anarkin szerint akkor átmész "full idiótába"
Ráadásul ez még mindig nem old meg mindent, mert egy a[] = { 6, 6, 3, 2, 3 } esetén például a legnagyobb és a második legnagyobb is 6 lesz, ami mondjuk érték szerint nézve nem igaz. Ekkor meg kell keresni az első két különböző elemet. Persze, ha a 6 - 6 kielégítő, akkor elég a fenti.
//szerk
Bár az egész megkerülhető, ha a kezdőértéknek a tárolható legkisebb számot adod
mivel full idióta ?
Quote (CyberPunk666 @ 8 Aug 2014 17:34)
jah, tanítványaim egyik leggyakoribb hibája.
meg kell keresni az első két különböző elemet, és a nagyobbikat a legnagyobba a kisebbet a másodiklegnagyobba bele.
Persze csak akkor ha az azonos értékeket azonos elemnek tekintjük. Tehát ha kettő van a legnagyobból, akkor a legnagyobb és a másodiklegnagyobb egyenlő lesz.
Egyébként csak simán az első két elem közül a nagyobb-kisebb-egyenlő feltételt kell kiértékelni egy darab ?: operátorral és kész.
gondold már végig mivel jár az hogy találj két egymástól különböző elemet, kizárólag inicializálás céljával <-- ez a sor mehetne red bold 72px is, nagyon nehéz megállni hogy ne legyen az
amúgy éppen ezt akartam az original postommal felhozni: jött 3 "easy as fuck" válasz (mint mindig, szinte mindenkitől, szóval nem titeket bántalak), és egyetlen megoldás sem, csak megoldáshoz közeli nem működő tünemény ; illetve a te "ötleted"..
és mindenek felett a legfontosabb, ami az egész tanulsága:
1 - ezek is nyugalmi állapotban születtek, otthon, úgy hogy már a különböző ötletek is adottak voltak -- lehetett gondolkozni a postok előtt, nem realtime kommunikáció hogy "nesze írd fel a táblára", úgy hogy egy olyan interjún vagy amiről TUDOD hogy piszkosul oda akarsz menni
2 - a történtek tökéletesen jellemzik a junior fejlesztők 95%-át akiket magam körül látok, mikor kb leüvöltik a senior fejét hogy ők jobban tudják (megtörtént, elég wtf volt) -- persze... mindenkinek nagyobb a fasza a másiknál ezt tudjuk, IT-ra meg ez különösen jellemző.. csak hogy nem
// az utolsó sort meg azután editelted be 2x is, hogy postoltam -- még azt is odaírtad hogy nem a legszebb, pedig kurvára a legszebb
láttam ám
szóval ezért mondtam eredetileg hogy ez egy remek millió forintos kérdés
ebből az egyszerű kérdésből kiindulva 3 napig tudhatna egy "lelkes" egyén beszélni megszakítás nélkül, kitérve arra hogy attól függően hogy a for ciklus belseje mennyire telített, a compiler ki is baszhatja a ciklust a kukába (vagy leosztja N-el), így akár a dupla ciklus azonos sebességű is lehet a körülmények függvényében, ha a másik megvalósítás egy komplexebb feltétel/függőség-sorozattal járna, de egy ciklusban, mert messze kevesebb dolgot pakolgat a stackben ki-be
és a végső tanulság:
3 - még csak nem is az számít hogy tökéletes legyen valami, csak nagyon nem tolerálják az emberek az "easy as fuck" megnyílvánulásokat.. meg kell mondani hogy
- "itt valahol az inicializáció környékén felmerülhetnek "DOLGOK", most nem akarom végiggondolni kapásból, egyelőre ezt most kihagyom a faszba, ha nem baj, most az algoritmus számít" -- ránézel, "nem baj"
- "majd azt is átgondoljuk később hogy .length < 2-re ArgumentException-t vagy mást dobjunk-e"
- "majd azt is átgondoljuk később hogy mennyire közelítsük meg funkcionálisan pattern matching baszással a dolgot, pl a nem-létező rekurzív funkcionális gondolkodásunk szerint az első esetet ami esetünkben .length == 2, lekezeljük-e külön, vagy nem"
ez ér valamit
az "easy as fuck" és felnyal valaki egy szinte biztosan nem 100%-os megoldást, kommunikáció nélkül, az meg nem -- mert az ilyen hozzáállás mentén a problémák is a szőnyeg alatt végzik, mert az ember nem megy oda a nála X vagy Y területen jobbhoz / máshoz szakosodotthoz tanácsért, véleményért