题解 | #旋转位置的特定牛#

旋转位置的特定牛

https://www.nowcoder.com/practice/4872ba1fef224bd382b49a5958d996ab

考察的知识点:数组、二分查找;

解答方法分析:

  1. 判断target是否小于或等于nums[0]。如果满足条件,则从头部向后搜索;否则,从尾部向前搜索。
  2. 从头部向后搜索,通过一个for循环遍历整个数组nums,从索引0开始递增,直到数组的大小。在每个循环中,使用条件语句判断当前元素nums[i]是否与目标值target相等。如果相等,则返回当前下标i。
  3. 从尾部向前搜索,通过一个for循环遍历整个数组nums,从数组的末尾索引nums.size()-1开始递减,直到0。在每个循环中,使用条件语句判断当前元素nums[j]是否与目标值target相等。如果相等,则返回当前下标j。
  4. 如果在两个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;
    }
};

全部评论

相关推荐

06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
今天 10:31
门头沟学院 Java
求问各位大佬,笔试都考点啥
投递科大讯飞等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务