蓝桥杯练习day1

前言

报名了java蓝桥杯,写一下每天练习的心得和leetcode记录。

二分查找

今天写二分,写烂了的板子,但是有些细节还是没注意到,水了下面这些题:
367. 有效的完全平方数
69. x 的平方根
704. 二分查找
35. 搜索插入位置
34. 在排序数组中查找元素的第一个和最后一个位置

用的板子是:

class Solution {
    public int searchLeft(int[] nums, int target) {
        int l = -1, r = nums.length;
        while (l + 1 != r) {
            int mid = l + (r - l) /2;
            if (nums[mid] >= target) 
                r = mid;
            else
                l = mid;
        }
        if (r == nums.length || nums[r] != target)
            return -1;
        else
            return r;
    }
}

心得与总结

可能会溢出的地方:

l + (r - l) / 2;
mid < target / mid;

总之注意下乘法的溢出问题。
此外,也要注意这个板子有边界+1溢出int上限的问题,部分时候用r=numsSize


java返回数组可以写return new int[]{1,2,3};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值