数组相关-part01
一.二分查找
二分查找的应用场景:①有序的数组。②不存在重复元素。若存在重复元素,则通过二分查找返回的数组下标可能不唯一。
二分法最核心的地方在于考虑清楚区间,做完题在查看解析的时候,我看到二分法分为左闭右闭和左闭右开两种,但是其实最核心的地方在于判断清楚区间。在每次判断,中间位置的值不等于target目标值的时候,需要考虑新区间的起始和结束。
我在提交的时候,就出现了测试用例错误的情况,我根据测试用例对比了我写的代码,主要问题在于忽略了边界情况,当数组中仅有两个变量时,起始下标start和结束下标end没有做判断。从而导致了错误。
二分的时间复杂度为:O(logn)。
二.移除元素
移除元素我使用的方法是暴力破解,通过两层for循环来处理数组,外层for循环遍历数组元素 ,内层for循环更新数组内的元素。
三.有序数的平方
有序数的平方我最开始采用的是暴力解法,先对数组中的每个元素进行平方计算,然后使用一次冒泡排序,对整个数组进行排序。主要是在做题的时候,没有想到按照绝对值,最小的负数和最大的整数进行平方之后,就是两端最大的值,这两个数中取更大的就是数组中最大的值。