题解 | #旋转位置的特定牛#
旋转位置的特定牛
https://www.nowcoder.com/practice/4872ba1fef224bd382b49a5958d996ab
考察的知识点:数组、二分查找;
解答方法分析:
- 判断target是否小于或等于nums[0]。如果满足条件,则从头部向后搜索;否则,从尾部向前搜索。
- 从头部向后搜索,通过一个for循环遍历整个数组nums,从索引0开始递增,直到数组的大小。在每个循环中,使用条件语句判断当前元素nums[i]是否与目标值target相等。如果相等,则返回当前下标i。
- 从尾部向前搜索,通过一个for循环遍历整个数组nums,从数组的末尾索引nums.size()-1开始递减,直到0。在每个循环中,使用条件语句判断当前元素nums[j]是否与目标值target相等。如果相等,则返回当前下标j。
- 如果在两个for循环结束后都没有找到与目标值相等的元素,则返回-1。
所用编程语言:C++;
完整编程代码:↓
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @param target int整型
* @return int整型
*/
int search(vector<int>& nums, int target) {
if (target <= nums[0]) {
for (int i = 0; i < nums.size(); i++) {
if (target == nums[i])
return i;
}
} else {
for (int j = nums.size() - 1; j >= 0; j--) {
if (target == nums[j])
return j;
}
}
return -1;
}
};
查看10道真题和解析
