All of LeetCode

33.Search in Rotated Sorted Array

在一个由有序数组演变的数组中进行查找,为了满足复杂度的需求,显然不能Arrays.sort,这里采用类似二分查找的查找方式,只不过多了首尾与中间值的对比。其每次循环所做的事如下:
1. 若中间值等于target,则输出其下表;
2. 若首小于中间值,说明数组递增或者旋转过半,分情况考虑,若为前者,则正常二分查找,
毕竟要么前段有序要么后端有序,故总可以二分或迭代。

关键:类比二分查找,部分有序

34.Search for a range
思路是写一个static函数可以找到和target相等的第一个数,实现方法依然是利用二分查找,关键点在于运用时寻找target结束点等于下一个开始点=1,很棒的思路。
我自己写的时候主要问题在于数组越界,总想与前后进行比较从而使得其越界,代码段不能重复使用,没有这个static函数优雅整齐。

关键:利用int+1来查找int的结束点,二分查找

升华:他貌似让你找的是两个点,但其实你应该找一个面,你找一个面的方法是找两个点,这个题告诉我,以点带面,一带一路。很重要。f(int+1)-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值