Թեմայի վերաբերյալ հրապարակումներ 'algorithms'
Ինչու՞ պետք է սովորել տվյալների կառուցվածքները և ալգորիթմները՝ ավելի լավ ծրագրավորող դառնալու համար:
Սա մի հարց է, որը ես բազմիցս քննարկել եմ իմ մտքում և վստահ եմ, որ սա այն հարցն է, որը կարող է ունենալ նաև ձեզանից մի քանիսը: Փորձեմ պարզել, թե ինչու պետք է սովորեք տվյալների կառուցվածքները (DS) և ալգորիթմը:
Տվյալների կառուցվածքն ու ալգորիթմե՞րը: Ի՞նչ են դրանք
Տվյալների կառուցվածքները ինչպես ասում է անունը, տվյալների պահպանման կառուցվածք է: Տվյալների հիմնական տեսակներն են՝ զանգված, ցուցակ, կույտ, հերթ, քարտեզ, կույտ… և այլն: Ալգորիթմները խնդրի լուծման տարբեր եղանակներ են:..
Leetcode մրցույթ 296
Խնդիր 1
Min Max Game
Ձեզ տրվում է 0 ինդեքսավորված ամբողջ թվային զանգված nums , որի երկարությունը 2 հզորություն է:
Կիրառեք հետևյալ ալգորիթմը nums -ի վրա.
Թող n լինի nums -ի երկարությունը: Եթե n == 1 , ապա ավարտեք գործընթացը: Հակառակ դեպքում, ստեղծեք նոր 0-ինդեքսավորված newNums n / 2 երկարությամբ ամբողջ թվային զանգված:
Յուրաքանչյուր զույգ i ինդեքսի համար, որտեղ 0 <= i < n / 2 , նշանակեք newNums[i] արժեքը որպես min(nums[2 * i], nums[2..
Երկուական որոնում և սահմանափակումներ
Այս թեմայի տեսողական ըմբռնման համար դիտեք այս տեսանյութը https://youtu.be/XK3uuAB3GUg
Երկուական որոնումը արագ և արդյունավետ որոնման մեթոդ է: Սա հստակ հասկանալու համար եկեք սկսենք որոնումների սկզբից: Մեզ տրվում են որոշակի տվյալներ, և մենք ցանկանում ենք դրանցում կոնկրետ տվյալներ փնտրել։ Այն, ինչ մենք անում ենք, վերցնում ենք յուրաքանչյուր տարր և ստուգում, թե արդյոք այն նույնն է, թե ոչ: Սա նշանակում է, որ եթե կա N տարր, մենք կարող ենք կատարել այս առաջադրանքը O(N) ժամանակի բարդության..
Մեծամասնության առաջնորդ Մուրի քվեարկության ալգորիթմով:
Մարտահրավերի նկարագրություն
Հաշվի առնելով nums զանգվածը՝ n , վերադարձրեք մեծամասնության տարրը :
Մեծամասնության տարրը այն տարրն է, որը հայտնվում է ավելի քան ⌊n / 2⌋ անգամ: Դուք կարող եք ենթադրել, որ մեծամասնության տարրը միշտ գոյություն ունի զանգվածում:
Օրինակ 1
Input: nums = [3,2,3]
Output: 3
Օրինակ 2
Input: nums = [2,2,1,1,1,2,2]
Output: 2
Մոտեցում 1. Տեսակավորում
Ինտուիցիա՝
Այս մոտեցման հիմքում ընկած ինտուիցիան այն է, որ եթե տարրը զանգվածում հայտնվում է..
JavaScript ալգորիթմներ և տվյալների կառուցվածքներ (մաս 4)
Գծային որոնում ընդդեմ Երկուական որոնում Ալգորիթմ
Գծային որոնում
Գծային որոնումն ամենապարզ մոտեցումն է, որն օգտագործվում է տվյալների հավաքածուում տարր որոնելու համար:
Խնդիր․ Հաշվի առնելով «n» տարրերի զանգվածը և «t» թիրախային տարրը, գտե՛ք «t» ինդեքսը զանգվածում վերադարձնում է -1, եթե տարրի թիրախը չի գտնվել։
օրինակ՝ [-5,2,10,4,6], t=10 պետք է վերադարձնի 2
Այս խնդիրը կարելի է լուծել այս ֆունկցիայի միջոցով.
function linearSearch(array, target){
for (let i = 0; i <..
Քնի տեսակավորում. տեսակավորման համար նախատեսված ալգորիթմ
Վերջերս ես հանդիպեցի դրական թվերի տեսակավորման իսկապես տարօրինակ ալգորիթմի։ Այն կոչվում է քնի տեսակավորում: Եվ զարմանալիորեն աշխատում է: Այսպիսով, ես որոշեցի սա իրականացնել c plus plus-ում և պատրաստել ձեռնարկ: Այս ձեռնարկում մենք կիրականացնենք այս ալգորիթմը c plus plus-ում: Դա անելիս մենք կսովորենք.
Ինչպես բազմաթելեր կատարել c plus plus-ում Ինչպես ստեղծել պատահական թվեր c-ում գումարած գումարած Ինչպես կազմել կոդը Linux-ում std::vectors-ի օգտագործումը Օգտագործեք std::shared_ptr և..
Ալգորիթմներ. Գտեք առաջին չկրկնվող նիշը
Որոնեք տող առաջին եզակի նիշի համար
Այս հոդվածում մենք կներկայացնենք ալգորիթմի մարտահրավեր, այնուհետև երկու լուծում կտանք՝ երկրորդ տեղը զբաղեցնող և օպտիմալ ալգորիթմ: Ալգորիթմները գրված են Python-ով։
Մարտահրավեր
Գտեք առաջին չկրկնվող նիշը փոքրատառերի շարքում: Չկրկնվողը սահմանվում է որպես նիշ, որը միայն մեկ անգամ է հայտնվում տողում: Եթե բոլոր նիշերը կրկնվում են, վերադարձրեք ընդգծում:
Ահա մի քանի նմուշ տողեր և պատասխաններ յուրաքանչյուրի համար.
"aabcdb" # c..
Նոր նյութեր
Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը:
Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...
Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..
Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..
Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..
C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող:
Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...
Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը:
ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..