leetcode刷题

分类:数组

35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

 

class Solution {
public:
    
    int searchInsert(vector<int>& nums, int target) {
        int j = nums.size() / 2;
        
        if (nums.size() == 1 && nums[0] == target)
            return 0;
        for (int i = 0; i < nums.size() -1; i++)
        {
            if (nums[i] == target)
                return i;
            if (nums[i] < target && nums[i+1] >= target)
                return i + 1;
            
        }
        
        if (nums[0] > target)
            return 0;
        else return nums.size();
    }
};

 

26. 删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if (nums.size() == 0)
            return 0;
        int j = 0;
        for (int i = 0; i < nums.size() - 1; i++)
        {
            if (nums[i] == nums[i+1])
            {
                nums[j] = nums[i];
                continue;
            }
            nums[++j] = nums[i+1];
        }
        return j+1;
    }
};

 

posted @ 2019-03-25 22:06  feifanren  阅读(227)  评论(0编辑  收藏  举报