Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA必需:变量,找到:值错误_Java_Variables - Fatal编程技术网

JAVA必需:变量,找到:值错误

JAVA必需:变量,找到:值错误,java,variables,Java,Variables,当我在Hankerak问题上运行这段代码时,我得到一个关于变量和值的错误。 我已经在谷歌上搜索过了,不幸的是我仍然无法找到原因。 请你解释一下这个错误好吗 public static void minimumBribes(List<Integer> q) { // Write your code here int swap =0; for(int i=q.size()-1; i>=0; i--){ if(

当我在Hankerak问题上运行这段代码时,我得到一个关于变量和值的错误。 我已经在谷歌上搜索过了,不幸的是我仍然无法找到原因。 请你解释一下这个错误好吗

public static void minimumBribes(List<Integer> q) {
    // Write your code here
    
        int swap =0;
        for(int i=q.size()-1; i>=0; i--){
            if(q.get(i) != i+1){
                if(i-1>=0 && q.get(i-1) == i+1){
                    int temp = q.get(i);
                    q.get(i) = q.get(i-1);
                    q.get(i-1) = temp;
                    swap++;
                } else if( i-2 >= 0 && q.get(i-2) == i+1){
                    int temp2 = q.get(i-2);
                    q.get(i-2) = q.get(i);
                    q.get(i) = temp2;
                    swap+=2;
                 } else {
                     System.out.println("Too chaotic");
                 }
            }
        }
        System.out.println(swap);
    }

您正在尝试设置不是变量的
get()
返回值。使用
q.set()

公共静态无效最小值(列表q){
//在这里编写代码
整数交换=0;
对于(int i=q.size()-1;i>=0;i--){
如果(q.get(i)!=i+1){
如果(i-1>=0&&q.get(i-1)==i+1){
int temp=q.get(i);
q、 集合(i,i-1);
q、 设置(i-1,温度);
swap++;
}else如果(i-2>=0&&q.get(i-2)==i+1){
int temp2=q.get(i-2);
q、 集合(i-2,i);
q、 设置(i,temp2);
互换+=2;
}否则{
System.out.println(“太混乱”);
}
}
}
系统输出打印项次(交换);
}

Use。这里的实际问题是给方法的结果赋值:
q.get(i)=q.get(i-1)
。方法的结果总是一个值,将值指定给值没有意义,因为无法将值指定给。改用变量,或者像其他人已经指出的那样,将值直接传递给
set
方法。另请参见:这是一个愚蠢的问题。非常感谢。我问了一个愚蠢的问题。。谢谢。
public static void minimumBribes(List<Integer> q) {
    // Write your code here
    
        int swap =0;
        for(int i=q.size()-1; i>=0; i--){
            if(q.get(i) != i+1){
                if(i-1>=0 && q.get(i-1) == i+1){
                    int temp = q.get(i);
                    q.set(i,i-1);
                    q.set(i-1,temp);
                    swap++;
                } else if( i-2 >= 0 && q.get(i-2) == i+1){
                    int temp2 = q.get(i-2);
                    q.set(i-2,i);
                    q.set(i,temp2);
                    swap+=2;
                 } else {
                     System.out.println("Too chaotic");
                 }
            }
        }
        System.out.println(swap);
    }