二分查找法:
细节方面:
[left , right](针对左闭右闭区间) [left , right) (针对左闭右开区间)
while(left<=right){ while(left<right){
if(a[mid]>key){ if(a[mid]>key){
right=mid-1; right=mid;
} }
if(a[mid]<key){ if(a[mid]<key){
left=mid+1; left=mid+1;
} }
} }
深度优先搜索(dfs):
功能:解决当前情况下应该要怎么办。
当被要求对各种情况进行枚举或输出时,应当考虑深度优先搜索。
今日典型:
洛谷P2404 自然数拆分问题
任何一个大于 11 的自然数 n,总可以拆分成若干个小于 n 的自然数之和。现在给你一个自然数 n,要求你求出 n 的拆分成一些数字的和。每个拆分后的序列中的数字从小到大排序。然后你需要输出这些序列,其中字典序小的序列需要优先输出。
双指针(基础思想):
双指针指两个指针下标,利用两个下标来解决实际问题。
新手入门:删除数组中的指定元素