ধরুন আমাদের একটি অ্যারে A আছে। আমাদের এটিকে ডানদিকে k ধাপে ঘোরাতে হবে। সুতরাং যদি অ্যারে হয় A =[5, 7, 3, 6, 8, 1, 5, 4], এবং k =3, তাহলে আউটপুট হবে [1,5,4,5,7,3,6, 8]। ধাপগুলো এরকম
- [4,5,7,3,6,8,1,5]
- [5,4,5,7,3,6,8,1]
- [1,5,4,5,7,3,6,8]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব৷
- আলো n হল অ্যারের আকার
- k =k mod n
- A =n – k থেকে শেষ পর্যন্ত A এর সাবয়ারে + A এর 0 থেকে n – k – 1 পর্যন্ত সাবয়ারে
আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -
উদাহরণ
class Solution(object): def rotate(self, nums, k): """ :type nums: List[int] :type k: int :rtype: None Do not return anything, modify nums in-place instead. """ n = len(nums) k%=n nums[:] = nums[n-k:]+nums[:n-k] nums = [5,7,3,6,8,1,5,4] ob1 = Solution() ob1.rotate(nums, 3) print(nums)
ইনপুট
nums = [5,7,3,6,8,1,5,4] k = 3
আউটপুট
[1,5,4,5,7,3,6,8]