题解 | #向左移动牛群#
向左移动牛群
https://www.nowcoder.com/practice/e70fc604c3684ce294e6af5e97feff04
知识点:数组 翻转
思路:和链表翻转一致,利用递归的方式实现
编程语言:java
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return int整型一维数组 */ public int[] rotateCows(int[] nums, int k) { int n = nums.length; k %= n; reverse(nums, 0, n - k - 1); reverse(nums, n - k, n - 1); reverse(nums, 0, n - 1); return nums; } // 反转数组中指定范围的元素 private void reverse(int[] arr, int start, int end) { while (start < end) { swap(arr, start, end); start++; end--; } } // 交换数组中两个位置的元素 private void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } }