zoukankan      html  css  js  c++  java
  • leetcode之Search Insert Position

    Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

    You may assume no duplicates in the array.

    Here are few examples.
    [1,3,5,6], 5 → 2
    [1,3,5,6], 2 → 1
    [1,3,5,6], 7 → 4
    [1,3,5,6], 0 → 0

    拿到这道题之后,首先第一反应是用二分法,因为是在有序数组中查找某个元素的位置。

    根据题目给出的测试用例,非常全的考虑了边界的情况等。这道题一遍编译通过,我也很奇怪。只是有一点不是很明白的地方在于,我的每一个判断语句中有return了,为什么整个函数最后还要加一个return,最后的这个return是返回的什么?不是很清楚。 

    下面附上我的代码,运行时间有点长

    public class Solution {
        public int searchInsert(int[] A, int target) {
            int result = 0;
            int length = A.length;
            int low = 0;
            int high = length-1;
            while(low<high){
            	int mid = (high+low)/2;
            	if(A[mid]<target){
            		low = mid+1;
            	}
            	else{
            		if(A[mid]>target){
                		high = mid-1;
                	}
            		else{
            			result = mid;
            			return result;
            		}
            	} 
            }
            if(A[low]<target){
            	result = high + 1;
            	return result;
            }
            if(A[low]>target){
            	result = low;
            	return result;
            }
    		return low;
           
        }
    }
    

      

  • 相关阅读:
    263邮箱配置告警发件配置
    交换机日期时间设置
    【Switch】- 配置日志文件输出syslog信息
    网络设备断电注意事项
    H3C交换机保存机制
    Docker学习笔记
    小型网络组网模型讲解
    Linux下管理员强行踢出用户的命令使用方法
    Linux SNMP 监控一些常用OID
    MySQL解决方案
  • 原文地址:https://www.cnblogs.com/gracyandjohn/p/4402747.html
Copyright © 2011-2022 走看看