双指针算法
双指针算法
双指针算法是一个优化算法
什么是双指针
双指针就是用两个指针相向或相对地遍历,用来维护某种性质
为什么要用双指针
双指针的主要目的是优化
比如一道题的做法如下
for (int i = 0; i < n; i ++ )
{
    for (int j = 0; j < n; j ++ )
    {
        // 具体逻辑
    }
}
这是一种暴力的做法,复杂度为 \(O(n^2)\) ,如果这道题中有某种单调性,则可以用双指针算法来优化成 \(O(n)\)
怎么用(模板)
for (int i = 0, j = 0; i < n; i ++ ) // j不一定是0
{
    while (j < i && check(i, j)) j ++ ;
    
    // 具体逻辑
}
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号