Java 数组的旋转。
Java rotation of array.
我是 java 的新手,请检查以下代码。请告诉我哪里错了
提前致谢
导入java.io.*;
导入java.util.*;
public class 解决方案{
public void rotate(int[] nums, int 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[] nums, int start, int end) {
while (start < end) {
int temp = nums[start];
nums[start] = nums[end];
nums[end] = temp;
start++;
end--;
}
for(int j = 0 ; j < nums.length - 1 ; j++ )
{
System.out.print(nums[j] + " ");
}
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int size = in.nextInt();
int n = in.nextInt();
int[] nums = new int[size];
for(int i = 0; i<nums.lenght-1;i++)
{
nums[i] = scan.nextInt();
}
rotate(nums, n);
}
}
好的,这里有一大堆代码问题,下面是它们的解决方案:
这是一个大问题..... INDENTATION:请在以后的问题中提供正确的缩进到你的代码。如果没有适当的缩进,在没有适当上下文的情况下阅读冗长的代码(例如您的代码)会很痛苦。
发表评论:任何语言的评论都是有原因的。他们让您了解您在代码中的选择,并帮助我们了解您的思维过程。
好的,现在代码有问题:
您的 class Solution
范围在提到 public static void
main(String[] args)
方法之前结束。
你的代码length这个词有销售错误for(int j = 0 ; j < nums.length - 1 ; j++ )
您使用 in
一词作为扫描仪 class Scanner in = new Scanner(System.in);
的参考变量,但在下一个 for
中输入时循环,你用了scan
这个词。选一个。
方法 rotate
应定义为静态方法。您只是在 main()
方法中使用了它,没有任何对象或 class 名称。您不能从 Solution 类型对非静态方法 rotate(int[], int) 进行静态引用。
解决所有这些问题,我认为您的代码可以正常工作。
我是 java 的新手,请检查以下代码。请告诉我哪里错了
提前致谢
导入java.io.*;
导入java.util.*;
public class 解决方案{
public void rotate(int[] nums, int 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[] nums, int start, int end) {
while (start < end) {
int temp = nums[start];
nums[start] = nums[end];
nums[end] = temp;
start++;
end--;
}
for(int j = 0 ; j < nums.length - 1 ; j++ )
{
System.out.print(nums[j] + " ");
}
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int size = in.nextInt();
int n = in.nextInt();
int[] nums = new int[size];
for(int i = 0; i<nums.lenght-1;i++)
{
nums[i] = scan.nextInt();
}
rotate(nums, n);
}
}
好的,这里有一大堆代码问题,下面是它们的解决方案:
这是一个大问题..... INDENTATION:请在以后的问题中提供正确的缩进到你的代码。如果没有适当的缩进,在没有适当上下文的情况下阅读冗长的代码(例如您的代码)会很痛苦。
发表评论:任何语言的评论都是有原因的。他们让您了解您在代码中的选择,并帮助我们了解您的思维过程。
好的,现在代码有问题:
您的 class
Solution
范围在提到public static void main(String[] args)
方法之前结束。你的代码length这个词有销售错误
for(int j = 0 ; j < nums.length - 1 ; j++ )
您使用
in
一词作为扫描仪 classScanner in = new Scanner(System.in);
的参考变量,但在下一个for
中输入时循环,你用了scan
这个词。选一个。方法
rotate
应定义为静态方法。您只是在main()
方法中使用了它,没有任何对象或 class 名称。您不能从 Solution 类型对非静态方法 rotate(int[], int) 进行静态引用。
解决所有这些问题,我认为您的代码可以正常工作。