1979 第K个数 1979 第K个数 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 时间限制: 1 s 时间限制: 1 s 空间限制: 1000 KB 空间限制: 1000 KB 题目等级
原创
2021-06-04 20:37:47
117阅读
题目描述:有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。示例 1:输入: k = 5输出: 9解题思路:由题可得,数组应为3a*5b*7c,即每个数字都是列表中先前值的 3 倍、5 倍或 7 倍,因此我们可以检查所有可能的值。但要注意防止重复出现的数字。因此用动态规划DP来解决。DP动态规划一般用三指针来实现。举个例子初始值 ugly[0]
原创
2021-06-01 16:41:28
1383阅读
题目
给定一个长度为 $n$ 的整数数列,以及一个整数 $k$,请用快速选择算法求出数列从小到大排序后的第 $k$ 个数。
输入格式
第一行包含两个整数 $n$ 和 $k$。
第二行包含 $n$ 个整数(所有整数均在 $1∼109$ 范围内),表示整数数列。
输出格式
输出一个整数,表示数列的第 $k$ 小数。
数据范围
$1≤n≤100000,1≤k≤n$
输入样例:
5 3
2 4 1 5
原创
2023-07-09 22:27:12
888阅读
题目传送门 一、理解感悟 1、这是快速排序模板的练习题。 2、不一样的地方在于它可以利用快排模板,但却不需要真的把所有数据排序完成,每次一分为二后,只关心自己所有的那一半,就是可以节约一半的递归。 3、由于是关心“位置”(第几个),所以需要携带这个参数。 4、位置这个参数不是一成不变的,因为如果在左
原创
2021-09-04 09:05:12
209阅读
来源:模板题算法标签:快排,快速选择题目描述:思路快排模板,找K时注意递归代码#include<iostream>using namespace std;const int N=1E5+10;int a[N];int quick_sort_k(int a[],int l,int r,int k){ if(l==r)return a[l]; ...
原创
2023-03-20 15:02:21
109阅读
给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排
原创
2022-12-17 00:30:05
84阅读
时间限制: 1 s 时间限制: 1 s 空间限制: 1000 KB 空间限制: 1000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个长度为N(0<n<=10000)的序列,保证每一个序列中的数字a[i]是小于maxlongint的非负整数 ,编程要求求出整个序列中
原创
2021-07-27 14:01:23
126阅读
#include <iostream> using namespace std; const int N = 1e6 + 10; int n, k; int q[N]; int quick_sort(int l, int r, int k) { if (l == r) return q[l]; in ...
转载
2021-08-28 17:48:00
98阅读
2评论
所谓序列的第K大数就是对于一个给定的有N个元素的序列,为了讨论方便,假设序列元素值都不相同。这个序列的第1大数就是元素值最大的那个,第N大数就是元素值最小的那个。那么第2大就是除去最大值之外剩下元素中最大的那个。以此类推,可知第3大、第4大。。。。。。从描述中可以看出,对于查找序列的第K大数的问题,最直观的方法就是每次找到最大的那个,如果不是要找的,再从剩下的元素中再找最大的,如果还不是,则继续找
转载
2024-07-04 22:37:44
52阅读
序列的第 k 个数 题目大意: 给你序列的前三项,这个序列要么是等差序列,要么是等比序列,求出第 \(k\) 项的值。 代码: const int mod = 200907; inline ll Read() { ll x = 0, f = 1; char c = getchar(); while ...
转载
2021-08-10 21:11:00
74阅读
2评论
快速排序后输出a[k-1]时间复杂度o(nlogn)#include<iostream>using namespace std;int n;int k;int a[10000
原创
2024-08-23 09:56:14
13阅读
原题链接 考察:主席树 思路: 利用二分的思想,即在主席树上二分,详细参考代码,主要记板子. 1 #include <iostream> 2 #include <cstring> 3 #include <vector> 4 #include <algorithm> 5 using namespace
转载
2021-07-02 09:34:00
129阅读
2评论
题目描述 给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数。 输入格式 第一行包含两个整数 n 和 k。 第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整数数列。 输出格式 输出一个整数,表示数列的第 k 小数。 数据范围 1≤ ...
转载
2021-10-31 13:01:00
470阅读
2评论
借用快排的思想,每次选取一个参考值,把区间分成两
原创
2023-07-17 18:13:15
53阅读
786. 第k个数 原题链接:https://www.acwing.com/problem/content/788/ 给定一个长度为 nn 的整数数列,以及一个整数 kk,请用快速选择算法求出数列从小到大排序后的第 kk 个数。 输入格式 第一行包含两个整数 nn 和 kk。 第二行包含 nn 个整 ...
转载
2021-08-17 20:30:00
96阅读
2评论
给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数。输入格式 第一行包含两个整数 n 和 k。第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整数数列。输出格式 输出一个整数,表示数列的第 k 小数。数据范围 1≤n≤100000, 1≤k≤n 输入样例: 5 3 2 4 1 5 3 输出样例: 3题解可查看快速排序题解
原创
2022-10-20 10:26:09
71阅读
题目链接:https://www.acwing.com/problem/content/description/788/ 解法1: 递归性质,设计一个查找函数,不断缩小搜索范围,最终找到第k个数字。符合递归函数设计原则。 解法2: 二分的思想,每次只对第k个数字所在部分进行排序,最终保证,第k个数处 ...
转载
2021-09-20 13:18:00
94阅读
2评论
python快速选择算法
原创
2023-10-13 10:39:05
118阅读
题目传送门 一、疑问:能不能一个数列,即是等差数列又是等比数列? 结论:一个数列如果是即是等差又是等比,那么它必然是一个全等数列 证明: 设三个连续数字$a\ b \ c$, 等差数列,所以$a+c=2b$ ① 等比数列,所以$\frac{b}{a}=\frac{c}{b}$,所以$b^2=ac$
原创
2022-05-19 10:36:08
78阅读
#include#includevoid bubbleSort(int arr[],int n){ int i,j; for(i=n-1;i>0;i--) for(j=n-2;j>=n-i-1;j--) { if(arr[j+1]>arr...
转载
2014-06-16 14:17:00
93阅读
2评论