Rotate Array
Butun sonli massiv nums
berilgan bo'lsa, massivni k
qadam bilan o'ngga aylantiring, bu erda k
manfiy emas.
Example 1:
Example 2:
Cheklovlar
1 <= nums.length <= 10^5
-2^31 <= nums[i] <= 2^31 - 1
0 <= k <= 10^5
Kuzatish:
Iloji boricha ko'proq yechim topishga harakat qiling. Ushbu muammoni hal qilishning kamida
uchta
yo'li mavjud.Buni
O (1)
qo'shimcha joy bilan joyida qila olasizmi?
Hint-1
Eng oson yechim qo'shimcha xotiradan foydalanishi mumkin va bu juda yaxshi.
Hint-2
Haqiqiy hiyla bu muammoni qo'shimcha xotiradan foydalanmasdan hal qilishga urinayotganda paydo bo'ladi. Bu elementlarni harakatlantirish uchun qandaydir tarzda asl massivdan foydalanish kerakligini anglatadi. Endi biz har bir elementni asl joyiga joylashtirishimiz va uning atrofidagi barcha elementlarni sozlash uchun siljitishimiz mumkin, chunki bu juda qimmatga tushadi va kattaroq kirish massivlarida vaqt tugashi mumkin.
Hint-3
Bir fikr chizig'i kerakli natijaga erishish uchun massivni (yoki uning qismlarini) teskari aylantirishga asoslangan. Qayta tiklash misol yordamida bizga qanday yordam berishi mumkinligini o'ylab ko'ring.
Hint-4
Boshqa fikrlash yo'nalishi biroz murakkab, lekin aslida u har bir elementni asl holatiga joylashtirish g'oyasiga asoslanadi va elementni dastlab shu holatda kuzatib boradi. Asosan, har bir qadamda biz elementni o'z joyiga joylashtiramiz va u erda yoki qo'shimcha o'zgaruvchiga yozilgan elementni kuzatib boramiz. Biz buni bitta chiziqli o'tishda qila olmaymiz va bu erda g'oya elementlar orasidagi tsiklik bog'liqlikka asoslangan.
Last updated
Was this helpful?