牛客题霸 [寻找第K大] C++题解/答案

牛客题霸 [寻找第K大] C++题解/答案

题目描述

有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。

给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。

题目:

利用快排+二分

题解:

class Finder {
public:int findKth(vector<int> a, int n, int K) {// write code here、return find(a,0,n-1,n-K+1);}int find(vector<int>&a,int l,int r,int K){if(l==r) return a[l];int i=l-1;int j=r+1;int x=a[l+r>>1];while(i<j){do i++;while(a[i]<x);do j--;while(x<a[j]);if(i<j) swap(a[i],a[j]);}int s=j-l+1;if(K<=s) return find(a,l,j,K);else return find(a,j+1,r,K-s);}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Loj#6247-九个太阳【单位根反演】

正题 题目链接:https://loj.ac/p/6247 题目大意 给出n,kn,kn,k求 ∑0≤i≤n,i∣k(ni)\sum_{0\leq i\leq n,i|k}\binom{n}{i}0≤i≤n,i∣k∑​(in​) 对998244353998244353998244353取模 1≤n≤1015,1≤k≤220,k2p(p∈N)1\leq n\leq 10^{15},1\leq k\leq 2^{20},k2^p(p\in N)1…

Docker最全教程——从理论到实战(二)

容器是应用走向云端之后必然的发展趋势&#xff0c;因此笔者非常乐于和大家分享我们这段时间对容器的理解、心得和实践。本篇教程持续编写了2个星期左右&#xff0c;只是为了大家更好地了解、理解和消化这个技术&#xff0c;能够搭上这波车。你可以关注我们的公众号“magiccode…

图论模板详解:存图

图论千万条&#xff0c;存图第一条 1.邻接矩阵 用一个矩阵x[i][j]表示i到j的路径 优点&#xff1a;代码方便&#xff0c;易于去重 缺点&#xff1a;空间复杂度爆炸 优化&#xff1a;二维vector&#xff08;但是会变慢&#xff09; 2.链式前向星 &#xff08;抄资料毫不掩饰&a…

2021牛客暑期多校训练营3 C-Minimum grid(二分图)

C-Minimum grid 如果第iii行最大值是aaa&#xff0c;第jjj列最大值是ccc&#xff0c;我们需要第iii行单独有一个格子权值是aaa&#xff0c;而且第jjj列单独有一个格子权值是bbb&#xff0c;不过如果第iii行最大值和第jjj列最大值是都是aaa&#xff0c;那么我们只需让第iii行第…

牛客题霸 [ 在二叉树中找到两个节点的最近公共祖先] C++题解/答案

牛客题霸 [ 在二叉树中找到两个节点的最近公共祖先] C题解/答案 题目描述 给定一棵二叉树以及这棵树上的两个节点 o1 和 o2&#xff0c;请找到 o1 和 o2 的最近公共祖先节点。 题解&#xff1a; 我们想想最近公共祖先节点满足什么要求&#xff1f;&#xff1f; o1和o2分别位…

P4249-[WC2007]剪刀石头布【费用流】

正题 题目链接:https://www.luogu.com.cn/problem/P4249 题目大意 nnn个点的竞赛图有的边已经确定了方向&#xff0c;要求给剩下的边确定一个方向使得图的三元环最多。 1≤n≤1001\leq n\leq 1001≤n≤100 解题思路 竞赛图如果三个点不能构成三元环有一个性质就是恰好有一个点…

eShopOnContainers 知多少[4]:Catalog microservice

引言Catalog microservice&#xff08;目录微服务&#xff09;维护着所有产品信息&#xff0c;包括库存、价格。所以该微服务的核心业务为&#xff1a;产品信息的维护库存的更新价格的维护架构模式如上图所示&#xff0c;本微服务采用简单的数据驱动的CRUD微服务架构&#xff0…

2021牛客暑期多校训练营3 I-Kuriyama Mirai and Exclusive Or(异或+差分)

I-Kuriyama Mirai and Exclusive Or KeHe题解 diabolusexnihil题解 不过diabolusexnihil大佬的题解有一部分写错了应该是&#xff1a;每次分裂标记bl,ib_{l,i}bl,i​需要给数组[l2i−1,l2i)⊕2i−1[l2^{i-1},l2^i)\oplus2^{i-1}[l2i−1,l2i)⊕2i−1然后标记分裂成bl,i−1,bl2…

最短路模板:dij,spfa与floyd

图论技能get&#xff01; 一个超强大的建图网站 最短路问题 1.dij算法 用于单源最短路 仅适用于没有负边权的情况 初始化dis数组为inf&#xff0c;dis【起点】0&#xff1b; tool&#xff1a;priority-queue&#xff08;按dis升序&#xff09; 先把起点放进队列 每次取出排头…

P5748-集合划分计数【EGF,多项式exp】

正题 题目链接:https://www.luogu.com.cn/problem/P5748 题目大意 求将nnn的排列分成若干个无序非空集合的方案。 输出答案对998244353998244353998244353取模。 1≤n≤105,1≤T≤10001\leq n\leq 10^5,1\leq T\leq 10001≤n≤105,1≤T≤1000 解题思路 就是求划分数 分成ii…

牛客题霸 [ 岛屿数量] C++题解/答案

牛客题霸 [ 岛屿数量] C题解/答案 题目描述 给一个01矩阵&#xff0c;1代表是陆地&#xff0c;0代表海洋&#xff0c; 如果两个1相邻&#xff0c;那么这两个1属于同一个岛。我们只考虑上下左右为相邻。 岛屿: 相邻陆地可以组成一个岛屿&#xff08;相邻:上下左右&#xff09;…

ASP.NET Core 实战:将 .NET Core 2.0 项目升级到 .NET Core 2.1

一、前言最近一两个星期&#xff0c;加班&#xff0c;然后回去后弄自己的博客&#xff0c;把自己的电脑从 Windows 10 改到 Ubuntu 18.10 又弄回 Windows 10&#xff0c;原本计划的学习 Vue 中生命周期的相关知识目前也没有任何的进展&#xff0c;嗯&#xff0c;罪过罪过。看了…

图论:dij算法优化:双端队列及详细证明

dij原来的写法请移步这里 首先&#xff0c;让我们举一个洛谷中的情境 这题中&#xff0c;我们可以二分mid答案&#xff0c;小于等于mid的边权是0&#xff0c;大于的是1&#xff0c;再计算最短路是否<k&#xff1b; 那么在这样边权只有0和1的时候&#xff0c;dij算法是否可以…

2021牛客暑期多校训练营4 B-Sample Game(概率DP)

B-Sample Game ding_ning123大佬题解 注&#xff1a;上述题解图片来自ding_ning123大佬题解 Code #include<bits/stdc.h> using namespace std; using lllong long; template <class Tint> T rd() {T res0;T fg1;char chgetchar();while(!isdigit(ch)) {if(ch-…

P6775-[NOI2020]制作菜品【贪心,dp】

正题 题目链接:https://www.luogu.com.cn/problem/P6775 题目大意 nnn种原材料&#xff0c;第iii个有did_idi​个&#xff0c;mmm道菜品都需要kkk个原料而且每道菜最多只能用两种材料。 要求构造方案使得满足条件。 1≤n≤500,n−2≤m≤5000,1≤k≤5000,(∑i1ndi)mk1\leq n\l…

牛客题霸 [螺旋矩阵] C++题解/答案

牛客题霸 [螺旋矩阵] C题解/答案 题目描述 给定一个m x n大小的矩阵&#xff08;m行&#xff0c;n列&#xff09;&#xff0c;按螺旋的顺序返回矩阵中的所有元素。 题解&#xff1a; 其实就是模拟过程&#xff0c;先往左走&#xff0c;走到头向下走&#xff0c;到头后向左走…

递推:Ybtoj: D.4 序列个数

传送门 这题需要使用数形结合的思想 用一个矩形表示序列&#xff0c;若(i&#xff0c;j)点为1&#xff0c;表示第i个数是j 比如&#xff1a; 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 表示的序列是&#xff1a;41235 显然每行和每列都只能有一个1 回到本题&#xf…

codeforces280 C. Game on Tree(期望)

C. Game on Tree 单独考虑每个点对答案的贡献。 删除一个点的方案是删除它或者它的祖先&#xff0c;那么对答案的贡献是1depu\frac 1 {\text{dep}_u}depu​1​ #include<cstdio> #include<vector>int n; std::vector<int> g[100005]; int dep[100005]; vo…

OrchardCore 如何实现模块化( Modular )和 Multi-Tenancy

一、概述通常我们会在 Startup 类通过 void ConfigureServices(IServiceCollection services) 配置应用的服务。常见的形如 AddXXX 的方法&#xff0c;实际上调用的都是 IServiceCollection 或直接说是 ServiceCollection 的 AddSingleton 等方法。调用ApplicationBuilder 的 R…

P2350-[HAOI2012]外星人【线性筛】

正题 题目链接:https://www.luogu.com.cn/problem/P2350 题目大意 给出NNN质因数分解之后的结果&#xff0c;求每次Nφ(N)N\varphi(N)Nφ(N)&#xff0c;多少次后N1N1N1。 N∏i1mpiqi,1≤m≤2000,1≤pi≤105,1≤qi≤109N\prod_{i1}^mp_i^{q_i},1\leq m\leq 2000,1\leq p_i\le…