首页 > 其他分享 >二分

二分

时间:2023-05-10 11:45:59浏览次数:34  
标签:二分 nums int mid len num

寻找重复数

class Solution {
    public int findDuplicate(int[] nums) {
        int len = nums.length;
        int l = 1, r = len - 1;
        while (l < r) {
            int mid = (l + r) / 2;
            int count = 0;
            for (int num : nums) {
                if (num <= mid) {
                    count++;
                }
            }
            if (count > mid) {
                r = mid;
            }else {
                l = mid + 1;
            }
        }
        return l;
    }
}

标签:二分,nums,int,mid,len,num
From: https://www.cnblogs.com/changebaobao/p/17387498.html

相关文章

  • 归档 230502 // 二分图
    Sowhynot二分图?二分图二分图总体概念不难。主要是其应用广泛,需要注意什么样的题目可以联系到二分图上来。概念若图\(G\)可将点集\(V\)分成两个互不相交的子集\(X\)和\(Y\),且每条边连接的两个点都满足一个在\(X\)中,一个在\(Y\)中,则称\(G\)为二分图。也就是说,......
  • 「TJOI2018」智力竞赛(二分+DAG最小可相交路径覆盖)
    https://loj.ac/problem/2574这个题目描述扎心了。简要题意:用n+1条可以相交的路径去覆盖DAG,使得没被覆盖的点的权值的最小值最大。首先二分答案,问题转换为有一些点一定要被覆盖,问n+1条路径内有没有解。这个可以暴力费用流,每个点拆成两个点,\(i->i',r=1\),如果这个点必选,则费用为inf,......
  • 二分查找——出现溢出问题
    算法描述:前提:有已排序数组A(假设已经做好)定义左边界L、右边界R,确定搜索范围,循环执行二分查找(3、4两步)获取中间索引M=Floor((L+R)/2)中间索引的值A[M]与待搜索的值T进行比较①A[M]==T表示找到,返回中间索引②A[M]>T,中间值右侧的其它元素都大于T,无需......
  • 【二分查找】LeetCode 33. 搜索旋转排序数组思路
    题目链接33.搜索旋转排序数组思路思路都在注释里代码classSolution{publicintsearch(int[]nums,inttarget){intlen=nums.length;if(len==0){return-1;}intleft=0,right=len-1;//1.......
  • 【二分查找】LeetCode 528. 按权重随机选择
    题目链接528.按权重随机选择思路代码classSolution{privateint[]sum;publicSolution(int[]w){sum=newint[w.length+1];for(inti=1;i<sum.length;i++){sum[i]=sum[i-1]+w[i-1];}}p......
  • 【二分查找】LeetCode 69. x 的平方根
    题目链接69.x的平方根思路基本思路是在区间\([1,x/2]\)中使用二分查找(因为平方根必然小于\(x/2\)),只不过需要注意一些细节。因为使用的是闭区间查找,所以判断循环终止的条件为\(left\leqright\)。为了防止溢出,使用mid=(right-left)/2+left和mid==x/mi......
  • 【二分查找】LeetCode 540. 有序数组中的单一元素
    题目链接540.有序数组中的单一元素思路假如不存在单个的元素,那么在奇数位置上总是成对元素的第一个元素,偶数位置上总是成对元素的第二个元素,但是如果加入了单个元素呢?我们可以看到在单个元素的左边这个特点没有变化,但是在单个元素的右边,奇数位置上总是成对元素的第二个元素,偶......
  • LeetCode 704. 二分查找 题解
    本题考查的就是一个基本的整数二分查找问题对于整数二分,有单调性一定可以二分,没有单调性的有时候也可以二分。算法思想(分为两种方法):查找结果是在左边区间的情况区间被划分为[l,mid]和[mid+1,r]1、确定分界点,mid=q[(l+r)/2]2、判断是否满足是:区间变成[l,mid]因此:r=mid否......
  • sklearn.metrics.precision_recall_curve—计算不同概率阈值的精确召回对(仅限于二分类
    参考:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_curve.html在分类模型的性能评估指标总结章节中,提到的Precision-Recall曲线可通过sklearn库中的precision_recall_curve函数计算而得。语法格式sklearn.metrics.precision_recall_cu......
  • Chemistry Experiment Codeforces Round 247 (Div. 2) 线段树动态开点,二分
    第一次写的时候还不会线段树的动态开点,写了一个是线段树但是是\(O(N^2)\)的写法,现在用动态开点武装了自己,会了正解\(O(qlogn^2)\)。首先建立一个权值线段树,但这里的权值很大,通过动态开点去建树来节省空间,对于两种操作:操作1,常见的动态开点的单点修改操作2,二分答案,然后在线段树......