Réécrire des questions-Leetcode-array

Points de connaissance

vecteur

Il s'agit d'un conteneur. La couche inférieure du vecteur est un tableau
. Le tableau à deux dimensions en C ++ est continu dans l'espace d'adressage et la différence entre deux éléments adjacents est de quatre octets.

Trouve

  1. Méthode
    binaire La condition de base de la recherche binaire est un tableau ordonné.
    Le tableau est un tableau ordonné, vous pouvez donc vous demander si vous pouvez utiliser la dichotomie.

Trier

Rewrite-Leetcode-35. Recherche de la position d'insertion

Lien thématique

Source: LeetCode
Lien: https://leetcode-cn.com/problems/search-insert-position Le
droit d'auteur est la propriété de LeetCode . Pour les réimpressions commerciales, veuillez contacter l'autorisation officielle Pour les réimpressions non commerciales, veuillez indiquer la source.

Analyse thématique

class Solution {
    
    
public:
    int searchInsert(vector<int>& nums, int target) {
    
    
        //1.暴力
        //时间o(n) 
        //空间o(1)
        // for(int i = 0; i < nums.size(); i++){
    
    
        //     if(nums[i] >= target){
    
    
        //         return i;
        //     }
        // }
        // //此时只有情况3没有考虑到 target要比数组所有值大
        // return nums.size();

        //2.二分 [left,right]
        int n = nums.size();
        int left = 0;
        int right = n - 1;
        while(left <= right){
    
    
            int middle = left + (right - left) / 2;
            if(target > nums[middle]){
    
    
                left = middle + 1;
            }else if(target < nums[middle]){
    
    
                right = middle - 1;
            }else{
    
    
                return middle;
            }
        }
        // return left + 1;//不可以
        return right + 1;
    }
};

Je suppose que tu aimes

Origine blog.csdn.net/qq_42771487/article/details/114961645
conseillé
Classement