好久没回来刷题,从二分开始
很久没有回来刷题了,记得上一次刷还是在大二,现在一转眼就是带薪刷题了,真的好快哈哈哈哈(上一次持续刷题是为了蓝桥杯)
题目: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; } }