zoukankan      html  css  js  c++  java
  • 35.Search Insert Position

    题目链接:https://leetcode.com/problems/search-insert-position/description/

    题目大意:一串升序数组和target,如果在数组中能找到target,则返回下标值;如果找不到,则返回应插入的位置下标值。

    解法一:利用二分查找,查找是否有target,如果有则返回,否则在最后得到的low值就是应该插入的位置或是low+1该插入的位置。代码如下(耗时7ms):

     1     public int searchInsert(int[] nums, int target) {
     2         int low = 0, high = nums.length - 1;
     3         while(low < high) {
     4             int mid = (low + high) / 2;
     5             if(nums[mid] < target) {
     6                 low = mid + 1;
     7             }
     8             else if(nums[mid] > target) {
     9                 high = mid - 1;
    10             }
    11             else {
    12                 return mid;
    13             }
    14         }
    15         if(nums[low] < target) {
    16             return low + 1;
    17         }
    18         else {
    19             return low;
    20         }
    21     }
    View Code

    解法二:直接暴力,逐一便利查看target是否存在于数组中,如果存在则返回下标值,如果不存在则返回应插入的位置。代码如下(耗时6ms):

     1     public int searchInsert(int[] nums, int target) {
     2         
     3         for(int i = 0; i < nums.length; i++) {
     4             if(target < nums[i]) {
     5                 if(i > 0) {
     6                     return i;
     7                 }
     8                 else {
     9                     return 0;
    10                 }
    11             }
    12             else if(target == nums[i]) {
    13                 return i;
    14             }
    15         }
    16         if(nums[nums.length - 1] < target) {
    17             return nums.length;
    18         }
    19         return 0;
    20     }
    View Code
  • 相关阅读:
    C语言寒假大作战02
    C语言寒假大作战01
    学习总结
    C语言I作业11
    C语言I作业10
    C语言I博客作业09
    C语言I作业08
    实验五、单元测试
    实验四 代码审查
    UML 建模工具的安装与使用
  • 原文地址:https://www.cnblogs.com/cing/p/8215544.html
Copyright © 2011-2022 走看看