题解 | #二分查找-I#
二分查找-I
https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b
using System;
using System.Collections.Generic;
class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param target int整型
* @return int整型
*/
private static int K_sum;
public int search (List<int> nums, int target) {
// write code here
if (nums.Count < 1) {
return -1;
}
else if (nums.Count < 2) {
if (nums[0] == target) {
return K_sum;
} else
return -1;
}
int k = nums.Count / 2;
if (nums[k - 1] == target) {
return k - 1 + K_sum;
} else if (nums[k - 1] > target) {
List<int> arr_cut = nums.GetRange(0, k - 1);
return search(arr_cut, target);
} else if (nums[k - 1] < target) {
List<int> arr_cut = nums.GetRange(k, nums.Count - k);
K_sum += k;
return search(arr_cut, target);
}
return -1;
}
}
查看11道真题和解析