遇到的问题:
1. 字符串数组声明同时赋值的情况下,String[] str = {"1","2","3"}编译通过;
而先声明后赋值的情况下,只能:
String[] str ;
str = new String[] {"1","2","3"} ;
2. 需要考虑String[] 数组长度为0的情况,和数组指针指向null的情况。
常用方法:
分治法:分开处理再合并,需要满足 f( a, a+1, ..., a+N ) = f( f( a, a+1, ..., a+N/2 ),f( a+N/2+1, ..., a+N ) ) 的条件。
二分法: 适用于xxxxxxxooo 寻找第一个o(或最后一个x)的情况。
while (front<=end)
{
mid = (front+end)/2;
if(true) front = mid+1;
else end = mid-1;
}
时间复杂度为 O(S⋅log(n)), 其中S=m*n 为字符串中所有字符的总数。