双指针: 有两个输入, 两个都需要遍历完
Java代码模板:
public int fn ( int [ ] arr1, int [ ] arr2) {
int i = 0 , j = 0 , ans = 0 ;
while ( i < arr1. length && j < arr2. length) {
if ( CONDITION ) {
i++ ;
} else {
j++ ;
}
}
while ( i < arr1. length) {
i++ ;
}
while ( j < arr2. length) {
j++ ;
}
return ans;
}
C++代码模板:
int fn ( vector< int > & arr1, vector< int > & arr2) {
int i = 0 , j = 0 , ans = 0 ;
while ( i < arr1. size ( ) && j < arr2. size ( ) ) {
if ( CONDITION) {
i++ ;
} else {
j++ ;
}
}
while ( i < arr1. size ( ) ) {
i++ ;
}
while ( j < arr2. size ( ) ) {
j++ ;
}
return ans;
}
Python代码模板:
def fn ( arr1, arr2) :
i = j = ans = 0
while i < len ( arr1) and j < len ( arr2) :
if CONDITION:
i += 1
else :
j += 1
while i < len ( arr1) :
i += 1
while j < len ( arr2) :
j += 1
return ans
JavaScript代码模板:
let fn = ( arr1, arr2 ) => {
let i = 0 , j = 0 , ans = 0 ;
while ( i < arr1. length && j < arr2. length) {
if ( CONDITION ) {
i++ ;
} else {
j++ ;
}
}
while ( i < arr1. length) {
i++ ;
}
while ( j < arr2. length) {
j++ ;
}
return ans;
}