Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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 为什么会有2';类型'的非法启动;我的二进制搜索代码出错? 公共类解决方案{ /* *@param nums:按升序排序的整数数组 *@param target:一个整数 *@return:整数 */ 公共int findPosition(int[]nums,int target){ //在这里编写代码 如果(nums.length=0){ 返回-1; } int start=0; int end=num.length-1; int mid; while(开始+1_Java_Binary Search - Fatal编程技术网

Java 为什么会有2';类型'的非法启动;我的二进制搜索代码出错? 公共类解决方案{ /* *@param nums:按升序排序的整数数组 *@param target:一个整数 *@return:整数 */ 公共int findPosition(int[]nums,int target){ //在这里编写代码 如果(nums.length=0){ 返回-1; } int start=0; int end=num.length-1; int mid; while(开始+1

Java 为什么会有2';类型'的非法启动;我的二进制搜索代码出错? 公共类解决方案{ /* *@param nums:按升序排序的整数数组 *@param target:一个整数 *@return:整数 */ 公共int findPosition(int[]nums,int target){ //在这里编写代码 如果(nums.length=0){ 返回-1; } int start=0; int end=num.length-1; int mid; while(开始+1,java,binary-search,Java,Binary Search,您的代码似乎有以下错误 public class Solution { /* * @param nums: An integer array sorted in ascending order * @param target: An integer * @return: An integer */ public int findPosition(int[] nums, int target) { // write your

您的代码似乎有以下错误

public class Solution {
    /*
     * @param nums: An integer array sorted in ascending order
     * @param target: An integer
     * @return: An integer
     */
    public int findPosition(int[] nums, int target) {
        // write your code here
        if (nums.length = 0) {
            return -1;
        }
        int start = 0;
        int end = num.length - 1;
        int mid;

        while (start + 1 < end) {
            mid = start + (end - start) / 2;
            if (nums[mid] == target) {
                end = mid;
            } else if (nums[mid] < target) {
                start = mid;
            } else if (nums[mid] > target) {
                end = mid;
            }
        }

        if (nums[start] == target) {
            return start;
        }
        if (nums[end] == target) {
            return end;
        }
    }

    return -1;
}
应该是本

if (nums.length = 0) {
        return -1;
    }

应该是

int end = num.length - 1;
您的无错误代码如下所示

int end = nums.length - 1;
public int findPosition(int[]nums,int target){
//在这里编写代码
如果(nums.length==0){
返回-1;
}
int start=0;
int end=nums.length-1;
int mid;
while(开始+1<结束){
mid=开始+(结束-开始)/2;
如果(nums[mid]==目标){
结束=中间;
}否则如果(nums[mid]目标){
结束=中间;
}
}
如果(nums[开始]==目标){
返回启动;
}
如果(nums[end]==目标){
返回端;
}
返回-1;
}

它看起来像
return-1
在方法之外。
如果(nums.length=0)
-始终为true。它是在做赋值,而不是比较
nums.length==0
@ScaryWombat不是用任何类似这样的语言。赋值表达式的值将是已赋值的值,在本例中为
0
。在Java中,
0
不能转换为布尔值。在弱类型语言中,它将被转换为布尔值false。谢谢。解决了的。
int end = nums.length - 1;
  public  int findPosition(int[] nums, int target) {
        // write your code here
        if (nums.length == 0) {
            return -1;
        }
        int start = 0;
        int end = nums.length - 1;
        int mid;

        while (start + 1 < end) {
            mid = start + (end - start) / 2;
            if (nums[mid] == target) {
                end = mid;
            } else if (nums[mid] < target) {
                start = mid;
            } else if (nums[mid] > target) {
                end = mid;
            }
        }

        if (nums[start] == target) {
            return start;
        }
        if (nums[end] == target) {
            return end;
        }
        return -1;
    }