好久没回来刷题,从二分开始
很久没有回来刷题了,记得上一次刷还是在大二,现在一转眼就是带薪刷题了,真的好快哈哈哈哈(上一次持续刷题是为了蓝桥杯)
题目:https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=295&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj
题目挺简单的,这么久没刷了回来看一眼还是知道解法的,但是二维数组总是记不住行和列的长度怎么取。
另外二分的模板也总是忘记,制定好l、r,找出mid,判断mid和target的值大小,大了r - 1,小了l + 1。没有合适的就是找到了
public class Solution {
public boolean Find(int target, int [][] array) {
for(int i = 0;i < array.length ;i++){
int l = 0;
int r = array[i].length - 1;
while(l <= r){
int mid = (l + r) / 2;
if(target > array[i][mid]){
l = mid + 1;
}else if(target < array[i][mid]){
r = mid - 1;
}else
return true;
}
}
return false;
}
}
查看12道真题和解析