常言道,没有总结的刷题不是好刷题。
目前刷题还特别少,总结不成系统的体系,先把每道题积累的经验写下来。后面随着积累题目增多,掌握知识系统化,还会进一步深入总结。
刷题审题经验总结
1.不要干想,草稿纸放手边。像做数学题一样对待每一道题。
2.有思路后,一定用示例在纸上跑一遍。很多时候示例中会给到提示。
3.考虑边界值,利用好数学思维,做到不重不漏。
二分查找
1.二分查找题,思维简洁、细节魔鬼,如果在脑子里草草一过,自以为会写了,其实想到和做到是两码事。一般需要关注的细节有:
①区间范围:左界left、右界right
②区间范围的更新方式:当[目标值]target>[中值]mid时,说明应向右找,left=mid+1;当[目标值]target<[中值]mid时,说明应向左找,right=mid-1
③二分查找何时结束:left>right时
④注意求[中值]mid时left与right直接相加的溢出问题,mid = left + (right-left)/2
2.二分查找特点:时间复杂度logn(<n),适用于有序数组。
3.二分查找体现了“减而治之”的思想,是一种减少问题规模的办法。
双指针
1.当问题对时间复杂度和空间复杂度做出限制时,考虑双指针。双指针常常能够一次遍历、原地空间解决问题。
2.双指针可以有逆向移动双指针、同向移动双指针(快指针和慢指针)。可以根据具体的问题,考虑用哪类双指针。