zoukankan      html  css  js  c++  java
  • 在排序数组中查找元素的第一个和最后一个位置(给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。)

    示例 1:
    输入: nums = [5,7,7,8,8,10], target = 8
    输出: [3,4]
    示例 2:
    输入: nums = [5,7,7,8,8,10], target = 6
    输出: [-1,-1]

    思路:定义两个变量start和end,分别指向数组首元素和末尾元素,当start<end时,我们从下标start开始查找与target值相等的,找到退出循环,用相同的方法从后给前找,找到退出循环,并且返回[start,end],没有找到返回[-1,-1];

    代码如下:

    public static int[] searchRange(int[] nums,int target) {
            int start = 0;
            int end = nums.length - 1;
            while(start <= end) {
                if(nums[start] == target) {
                    break;
                }
                start++;
            }
            while(start <= end) {
                if(nums[end] == target) {
                    return new int[] {start,end};
                }
                end--;
            }
            return new int[] {-1,-1};
    }
  • 相关阅读:
    交流课件
    ARC127F ±AB
    CF1566F xor-quiz
    JOISC 2016 Day 1 棋盘游戏
    dev分支和release是什么
    drf 笔记
    drf 序列化的写法 总结
    Linux系统编程
    C/C++ 网络编程
    C++提高编程
  • 原文地址:https://www.cnblogs.com/du001011/p/10513787.html
Copyright © 2011-2022 走看看