1. 程式人生 > >(LeetCode)旋轉陣列

(LeetCode)旋轉陣列

原體描述如下:

Rotate an array of n elements to the right by k steps.

For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.

Hint:
Could you do it in-place with O(1) extra space? 我的解答如下:
public class Solution {
    public void rotate(int[] nums, int k) {
	if(nums==null||k==0)
	{
		return;
	}
	k = k%nums.length;
	reverse(nums,0,nums.length-1);
	reverse(nums,0,k-1);
	reverse(nums,k,nums.length-1);
}
public void reverse(int[] a ,int start, int end)
	{
		while(start<end)
		{
			int temp = a[start];
			a[start] = a[end];
			a[end] = temp;
			start++;
			end--;
		}
	}
}


相關推薦

Leetcode 旋轉陣列(c++)

給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,2,3,4,5,6] 向右旋轉 2 步: [6,7,1,2,3

leetcode---旋轉陣列

題目說明 給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右

LeetCode-旋轉陣列

旋轉陣列將包含 n 個元素的陣列向右旋轉 k 步。例如,如果  n = 7 ,  k = 3,給定陣列  [1,2,3,4,5,6,7]  ,向右旋轉後的結果為 [5,6,7,1,2,3,4]。注意:儘可能找到更多的解決方案,這裡最少有三種不同的方法解決這個問題。感覺這個題目

LeetCode——旋轉陣列

問題描述:給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。解法一:將下標為i的元素放在下標i+k處,再將下標i+k處的元素放置在正確位置,以此類推(AC),時間複雜度:O(n),空間複雜度:O(1),程式碼如下:private static void R

(LeetCode)旋轉陣列

原體描述如下: Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotate

Leetcode演算法——33、查詢有序旋轉陣列

給定一個數組,這個陣列是由一個升序陣列進行左旋或右旋若干次得到的。 比如,[0,1,2,4,5,6,7] 可能會變為 [4,5,6,7,0,1,2] 給定一個目標值,去陣列中查詢這個值。如果找到,則返回索引,否則返回-1。 可以假設陣列中沒有重複值。 示例: Exampl

LeetCode演算法題189:旋轉陣列解析

給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,2,3,4,5,6] 向右旋轉 2 步: [6,7,1,2,3,4,5]

LeetCode 189.Rotate Array (旋轉陣列)

題目描述: 給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,2,3,4,5,

LeetCode 189.旋轉陣列

void rotate(int* nums, int numsSize, int k) { int i,j,b; for (i = 0; i < k; i++) { b=nums[numsSize-1]; for (j = numsSize-2; j >= 0; j

刷爆LeetCode旋轉陣列

旋轉陣列 給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: [1,2,3,4,5,6,7]和 k = 3輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,2,3,4,5,6] 向右旋轉 2 步: [6

LeetCode使用Python實現旋轉陣列

需求: 給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,2,3,4,5,6] 向右旋轉 2 步: [6,7,1,

LeetCode[189].旋轉陣列

題目 給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,2,3,4,5,6] 向右旋轉 2 步

LeetCode旋轉陣列

給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1

leetcode】#陣列【Python】48. Rotate Image 旋轉影象

連結: 題目: 給定一個 n × n 的二維矩陣表示一個影象。 將影象順時針旋轉 90 度。 說明: 你必須在原地旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉影象。 示

LeetCode-面試演算法經典-Java實現】【153-Find Minimum in Rotated Sorted Array(找旋轉陣列中的最小數字)】

原題   Suppose a sorted array is rotated at some pivot unknown to you beforehand.   (i.e., 0

LeetCode--初級演算法--陣列篇-旋轉陣列

題目 給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,2,3,4,5,6] 向右旋轉 2 步: [6,7,

LeetCode-探索-初級-陣列-旋轉陣列-java

  旋轉陣列 給定一個數組,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。 示例 1: 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,

LeetCode 153. Find Minimum in Rotated Sorted Array(旋轉陣列查詢)

Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). Find t

LeetCode(初級演算法)陣列篇---旋轉陣列

題目 將包含 n 個元素的陣列向右旋轉 k 步。 例如,如果 n = 7 , k = 3,給定陣列 [1,2,3,4,5,6,7] ,向右旋轉後的結果為 [5,6,7,1,2,3,4]。 注意: 儘可能找到更多的解決方案,這裡最少有三種不同的方法

LeetCode】Rotate Array 旋轉陣列

題目 Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7]