51NOD L4-第三章 树 刷题记录-zgw

第三章 树

2423 叶子节点的数量 AC 3.7
2282 树的深度 AC 3.7
2281 树的Size之和 AC 3.7
2627 树的深度及子树大小 AC 3.10
3039 叶子节点的路径 AC 3.11

2599 最近公共祖先(LCA) AC 3.11
2621 树上距离 AC
2675 开疆扩土
1591 二叉树先序遍历 AC
2064 二叉树中序遍历 AC
2350 二叉树后序遍历 AC

3022 奇怪的二叉树
3021 有趣的二叉树
2605 没有上司的舞会
2602 树的直径 AC
2610 粗心的小Biu

175 区间中第K大的数 AC 2.22

2021.2.22

51nod-1175 区间中第K大的数**

解题思路:

分治(70分)。
任取一个数组当中的数x(第一个,最后一个,或者随机都行),
考虑把数组分为三段,小于x的数,等于x的数和大于x的数。
然后判断
如果大于x的数的数目多余k个,说明答案应该在大于x这段里面,递归调用函数即可;
否则:
1、如果大于和等于x的数目大于等于k,说明答案就是x;
2、否则,答案应该在小于x这段里面,递归函数即可,但是数目应该是k减去大于和等于两段的数目。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include <vector>
using namespace std;
int N,Q,I,J,K;
vector <int> a;
int f(vector <int> b, int st, int ed, int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值