LeetCode:Search Insert Position

来源:互联网 发布:网络优化公司智搜宝 编辑:程序博客网 时间:2024/05/23 19:11

继续刷题中。。。。

废话少说,先上题目: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.

大概意思就是,给你一个已经排好序的数组,和一个目标数字,如果 the target value存在这个数组中则返回它在数组中的index,否则插入到数组中保证数组仍然是排好序的,返回它插入后的位置

既然数组排序了,就很好办了,我接下来讲一下自己的思路

1、遍历一下数组,看一下target value是否存在于数组中,如果有就返回,结束算法

2、如果没有找到这个target,那么我们就应该找到target应该在的位置,然后返回;

3、为了找到它应该在的位置,我们还是需要遍历数组,将数组中每一个value分别与target比较,如果小于target那么pos=i+1;

如果大于于target,那么pos=i,且break;

4、那么最后返回的pos便是它的位置

思路清楚了,我们就可以写代码了,附上我的代码


int searchInsert(vector<int>& nums, int target) {
     for(int i=0;i<nums.size();i++)
     {
         if(nums[i]==target)
         return i;
     }
     int pos=-1;
     for(int i=0;i<nums.size();i++)
     {
         if(nums[i]<target)
           pos=i+1;
         if(nums[i]>target)
         {
         pos=i;
         break;
         }
     }
     return pos;
    }

0 0
原创粉丝点击