Giả sử chúng ta có một mảng A. Ta phải xoay phải nó k bước. Vì vậy, nếu mảng là A = [5, 7, 3, 6, 8, 1, 5, 4] và k = 3, thì đầu ra sẽ là [1,5,4,5,7,3,6, . Các bước giống như Show
Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau
Chúng ta hãy xem triển khai sau đây để hiểu rõ hơn - Ví dụBản thử trực tiếp 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) Đầu vàonums = [5,7,3,6,8,1,5,4] k = 3 đầu ra[1,5,4,5,7,3,6,8] Trong chương trình này, chúng ta cần xoay các phần tử của một mảng về bên trái theo số lần đã chỉ định. Trong phép quay trái, mỗi phần tử của mảng sẽ dịch chuyển sang trái một vị trí và phần tử đầu tiên của mảng sẽ được thêm vào cuối danh sách. Quá trình này sẽ được thực hiện trong một số lần xác định Xét mảng trên, nếu n bằng 1 thì tất cả các phần tử của mảng sẽ dịch chuyển sang trái một vị trí sao cho phần tử thứ 2 của mảng sẽ chiếm vị trí thứ nhất, phần tử thứ 3 sẽ dịch chuyển sang vị trí thứ 2, v.v. Phần tử đầu tiên của mảng sẽ được thêm vào phần tử cuối cùng của mảng Mảng được xoay trong mặt phẳng được xác định bởi hai trục được cung cấp bởi tham số axis sử dụng phép nội suy spline của thứ tự được yêu cầu Thông số đầu vào array_likemảng đầu vào góc phaoGóc quay tính bằng độ trục bộ gồm 2 số nguyên, tùy chọnHai trục xác định mặt phẳng quay. Mặc định là hai trục đầu tiên định hình lại bool, tùy chọnNếu định hình lại là đúng, hình dạng đầu ra được điều chỉnh sao cho mảng đầu vào được chứa hoàn toàn trong đầu ra. Mặc định là Đúng đầu ra mảng hoặc dtype, tùy chọnMảng để đặt đầu ra hoặc dtype của mảng được trả về. Theo mặc định, một mảng có cùng loại với đầu vào sẽ được tạo thứ tự int, tùy chọnThứ tự nội suy spline, mặc định là 3. Thứ tự phải nằm trong khoảng 0-5 mode {'reflect', 'grid-mirror', 'constant', 'grid-constant', 'gần nhất', 'mirror', 'grid-wrap',Tham số chế độ xác định cách mảng đầu vào được mở rộng ra ngoài ranh giới của nó. Mặc định là 'không đổi'. Hành vi cho từng giá trị hợp lệ như sau (xem các sơ đồ bổ sung và chi tiết trên) 'phản ánh' (d c b a. A B C D. đ c b a)Đầu vào được mở rộng bằng cách phản ánh về cạnh của pixel cuối cùng. Chế độ này đôi khi còn được gọi là đối xứng nửa mẫu 'gương lưới'Đây là một từ đồng nghĩa với 'phản ánh' 'không đổi' (k k k k. A B C D. k k k k)Đầu vào được mở rộng bằng cách điền tất cả các giá trị ngoài cạnh với cùng một giá trị không đổi, được xác định bởi tham số cval. Không có phép nội suy nào được thực hiện ngoài các cạnh của đầu vào 'hằng số lưới' (k k k k. A B C D. k k k k)Đầu vào được mở rộng bằng cách điền tất cả các giá trị ngoài cạnh với cùng một giá trị không đổi, được xác định bởi tham số cval. Nội suy cũng xảy ra đối với các mẫu nằm ngoài phạm vi của đầu vào 'gần nhất' (a a a a. A B C D. d d d d)Đầu vào được mở rộng bằng cách sao chép pixel cuối cùng ‘tấm gương’ (d c b. A B C D. c b a)Đầu vào được mở rộng bằng cách phản ánh về trung tâm của pixel cuối cùng. Chế độ này đôi khi cũng được gọi là đối xứng toàn bộ mẫu 'quấn lưới' (a b c d. A B C D. A B C D)Đầu vào được mở rộng bằng cách quấn quanh cạnh đối diện 'quấn' (d b c d. A B C D. b c a b)Đầu vào được mở rộng bằng cách bao quanh cạnh đối diện, nhưng theo cách sao cho điểm cuối cùng và điểm đầu trùng khớp chính xác. Trong trường hợp này, không xác định rõ mẫu nào sẽ được chọn tại điểm chồng lấp cval vô hướng, tùy chọnGiá trị để lấp đầy các cạnh đầu vào trong quá khứ nếu chế độ là 'không đổi'. Mặc định là 0. 0 bộ lọc trước bool, tùy chọnXác định xem mảng đầu vào có được lọc trước trước khi nội suy hay không. Giá trị mặc định là True, sẽ tạo một mảng float64 tạm thời gồm các giá trị được lọc nếu thứ tự > 1. Nếu đặt giá trị này thành Sai, đầu ra sẽ hơi mờ nếu thứ tự > 1, trừ khi đầu vào được lọc trước, tôi. e. đó là kết quả của việc gọi đầu vào ban đầu |