代码随想录day1:数组part01(二分查找 ,删除数组指定元素)

数组part01

一、二分查找

两种写法

1、维护[left,right]

class Solution {
public:
    int search(vector& nums, int target) {
        int left=0;
        int right=nums.size()-1;
        while(left<=right) // 维护[left,right]
        {
            int mid=(left+right)/2;
            if(nums[mid]>target) right=mid-1;
            else if(nums[mid]

2、维护[left,right)

class Solution {
public:
    int search(vector& nums, int target) {
        int left=0;
        int right=nums.size();
        while(lefttarget) right=mid;
            else if(nums[mid]

二、删除数组指定元素

1、暴力

时间复杂度:O(n^2)
空间复杂度:O(1)

class Solution {
public:
    int removeElement(vector& nums, int val) {
        int size=nums.size();
        for(int i=0;i

2、双指针

时间复杂度:O(n)
空间复杂度:O(1)

class Solution {
public:
    int removeElement(vector& nums, int val) {
        int fast=0;
        int slow=0;
        for(fast=0;fast

你可能感兴趣的:(算法,算法,leetcode,数据结构)