AMcoder - javascript, python, java, html, php, sql

մի թիվ ավելացրեք բոլոր կենտ կամ զույգ ինդեքսավորված տարրերին անփույթ զանգվածում առանց հանգույցների

Ենթադրենք, որ ձեր անհարթ զանգվածը հետևյալն է.

 A =    [1,1,2,3,4]

Դուք կարող եք պարզապես անել.

A + .1

այդ յուրաքանչյուր տարրի անհարթ զանգվածին մի թիվ ավելացնելու համար

Ես փնտրում եմ միջոց՝ թիվ ավելացնելու միայն կենտ կամ զույգ ինդեքսավորված A[::2] +1 թվերին՝ ամբողջ զանգվածը անփոփոխ պահելով:

Հնարավո՞ր է թիվ ավելացնել բոլոր կենտ կամ զույգ ինդեքսավորված տարրերին առանց որևէ օղակի:

07.08.2012

  • ինչու է այն պետք առանց օղակների: կարող եք ցույց տալ ձեր կոդը որտեղ եք ուզում դա իրականացնել կոդում: 07.08.2012
  • Ի՞նչ է նշանակում ամբողջ զանգվածը անձեռնմխելի պահելը: Դուք բացառու՞մ եք տեղում գործունեությունը: 07.08.2012

Պատասխանները:


1
In [43]: A = np.array([1,1,2,3,4], dtype = 'float')

In [44]: A[::2]  += 0.1

In [45]: A
Out[45]: array([ 1.1,  1. ,  2.1,  3. ,  4.1])

Նկատի ունեցեք, որ սա փոփոխում է A-ը: Եթե ​​ցանկանում եք թողնել A անփոփոխ, նախ պատճենեք Aը՝

In [46]: A = np.array([1,1,2,3,4], dtype = 'float')

In [47]: B = A.copy()

In [48]: B[::2]  += 0.1

In [49]: B
Out[49]: array([ 1.1,  1. ,  2.1,  3. ,  4.1])

In [50]: A
Out[50]: array([ 1.,  1.,  2.,  3.,  4.])
07.08.2012

2

Նախորդ պատասխաններից բացի, կենտ ինդեքսներով թվերը փոփոխելու համար պետք է A[::2] փոխարեն օգտագործել A[1::2]:

07.08.2012

3

Ցուցակի ըմբռնման հետ կապված ինչ-որ բան կարող է աշխատել:

A = [1,1,2,3,4]
A = [A[i] + (0 if (i%2 == 0) else .1) for i in range(len(A))]

Պարզապես արագ և կեղտոտ եռակի հետ: Հնարավոր է չաշխատի Python-ի ձեր տարբերակում, չեմ կարող հիշել, թե որ տարբերակներով է այն աշխատում:


Ստուգված Python 2.7.3-ում և Python 3.2.3-ում, ելքը նույնն է.

>>> A = [1,1,2,3,4]

>>> A
[1, 1, 2, 3, 4]

>>> A = [A[i] + (0 if (i%2 == 0) else .1) for i in range(len(A))]

>>> A
[1, 1.1, 2, 3.1, 4]
07.08.2012
  • Ահ, բաց թողեցի անփույթ զանգվածը: Առաջին պատասխանը շատ ավելի լավ է. Իմ վատը. 07.08.2012

  • 4

    Եթե ​​ցուցակը չի սկսվում երկու 1-ով, և ցանկանում եք գումարել բոլոր զույգ թվերին, կարող եք օգտագործել.

    A[1::2] += 0.1
    

    or

    A[::-2][::-1] += 0.1
    

    Վերջին դեպքում, [::-1] օգտագործվում է զանգվածը նորմալ կարգի վերադարձնելու համար:

    30.04.2018
    Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..