LeetCode--第180场周赛
LeetCode--第180场周赛
1380. 矩阵中的幸运数

class Solution {
public:
vector<int> luckyNumbers (vector<vector<int>>& matrix) {
vector<int> ans;
int m = matrix.size();
int n = matrix[0].size();
for (int i = 0; i < m; i++) {
for (int j = 0; j < n ; j++) {
int f = 0 ;
for(int k = 0 ; k < n ;k++) {
if((matrix[i][j] > matrix[i][k]) ) {
f = 1;
break;
}
}
for(int k = 0 ; k < m ;k++) {
if((matrix[i][j] < matrix[k][j]) ) {
f = 1;
break;
}
}
if (f != 1)
ans.push_back(matrix[i][j]);
}
}
return ans;
}
};
1381. 设计一个支持增量操作的栈
- 模拟栈的操作比较水

#include <vector>
class CustomStack {
public:
vector<int> v;
int maxsize;
CustomStack(int maxSize) {
maxsize = maxSize;
}
void push(int x) {
if (v.size() >= maxsize) {
return;
}
v.push_back(x);
}
int pop() {
if(v.size() == 0) {
return -1;
}
int a = v[v.size() - 1];
v.pop_back();
return a;
}
void increment(int k, int val) {
for(int i = 0; i < k && i < v.size() ;i++ ) {
v[i] += val;
}
}
};
1382. 将二叉搜索树变平衡

- 先中序遍历获得有序的顺序
- 再通过该顺序,重新创建一个二叉搜索树
- 返回新的二叉搜索树
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* balanceBST(TreeNode* root) {
vector<TreeNode*> arr;
dfs(root, arr);
return construct(arr, 0, arr.size()-1);
}
void dfs(TreeNode* root, vector<TreeNode*>& arr) {
if (!root) return;
dfs(root->left, arr);
arr.push_back(root);
dfs(root->right, arr);
}
TreeNode* construct(vector<TreeNode*>& arr, int left ,int right) {
if (left > right) return NULL;
int mid = (left + right) / 2;
arr[mid]->left = construct(arr, left, mid-1);
arr[mid]->right = construct(arr, mid+1, right);
return arr[mid];
}
};
1383. 最大的团队表现值

首先我们对n个人进行排序,优先效率从大到小,然后我们维护一个堆(set或者priority_queue都可以),堆中每次维护k个值,也就是我们所要选择的k个人。那么对于这前k个人来说的团队表现值就是sumv[k-1].efficiency,那么对于下一个人来说,他是第k+1个将他加入到堆中,然后我们删去堆中speed最小的人,由于efficiency是从大到小排序,那么删除的这个人的efficiency一定是大于这个第k+1个人的,所以不需要去考虑删除的efficiency,那么此时的团队表现值就是sumv[k].efficiency,就这样遍历到最后维护一个最大团队表现值就好了。
class Solution {
public:
const int mod = 1e9 + 7;
vector<pair<int,int> > v;
typedef pair<int,int> p;
multiset<int> s;
int maxPerformance(int n, vector<int>& speed, vector<int>& efficiency, int k) {
for(int i=0;i<n;i++){
v.push_back(p(speed[i], efficiency[i]));
}
sort(v.begin(), v.end(), [](const pair<int,int> a, const pair<int,int> b){
if(a.second == b.second) return a.first > b.first;
return a.second > b.second;
});
long long sum = 0;
long long ans = 0;
for(int i=0;i<n;i++){
sum += v[i].first;
s.insert(v[i].first);
if(s.size() > k){
sum -= *s.begin();
s.erase(s.begin());
}
ans = max(ans, sum * v[i].second);
}
return ans % mod;
}
};
LeetCode--第180场周赛的更多相关文章
- LeetCode | 第180场周赛--5356矩阵中的幸运数
给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元素中最大 示 ...
- LeetCode 第 165 场周赛
LeetCode 第 165 场周赛 5275. 找出井字棋的获胜者 5276. 不浪费原料的汉堡制作方案 5277. 统计全为 1 的正方形子矩阵 5278. 分割回文串 III C 暴力做的,只能 ...
- Leetcode第 217 场周赛(思维量比较大)
Leetcode第 217 场周赛 比赛链接:点这里 做完前两题我就知道今天的竞赛我已经结束了 这场比赛思维量还是比较大的. 1673. 找出最具竞争力的子序列 题目 给你一个整数数组 nums 和一 ...
- Leetcode 第133场周赛解题报告
今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看 ...
- LeetCode第151场周赛(Java)
这是我第一次写周赛的题目,而且还是虚拟的.从这次起,以后就将所有错过的题目都写到博客来.当然既然是我错的,那代码肯定不是我自己的.我会注明来源.并且我会自己敲一遍.多总结总是没坏处的. 另外比较糟糕的 ...
- LeetCode第152场周赛(Java)
这算是我第一次正式参加 LeetCode 的周赛吧.通过两道题.意料之中(通过上次模拟可以看出来).总的来说,脑袋还是不太灵光.想的有点慢.全球第一名 0:10:19 就全部通过...感觉我的智商被狠 ...
- Leetcode 第136场周赛解题报告
周日的比赛的时候正在外面办事,没有参加.赛后看了下题目,几道题除了表面要考的内容,还是有些能发散扩展的地方. 做题目不是最终目的,通过做题发现知识盲区,去研究学习,才能不断提高. 理论和实际是有关系的 ...
- Leetcode 第137场周赛解题报告
今天的比赛的题目相对来说比较「直白」,不像前几周都是一些特定的算法,如果你没学过不可能想出来. 做了这些周,对leetcode比赛的题目也发现了一些「规律」. 一般前两道题都很「简单」,只要有想法,直 ...
- LeetCode 第 150 场周赛
一.拼写单词(LeetCode-1160) 1.1 题目描述 1.2 解题思路 由于给定的chars,每个字母只能用一次,所以用大小为26的数组charsArray来表示a-z(例如charsArra ...
- LeetCode 第 196 场周赛 (题目:5452-5455,这是参加过最坑的周赛,暴力n^2居然可以过)
5452. 判断能否形成等差数列 给你一个数字数组 arr . 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 . 如果可以重新排列数组形成等差数列,请返回 tru ...
随机推荐
- DBCP + C3P0 连接池
DBCP 配置参数如下: 参数 默认值 可选值 格式 说明 username 用户名 password 密码 url 数据库连接url driverClassNam ...
- js javascript 获取url,获得当前页面的url,静态html文件js读取url参数
获得当前页面的url window.location.href 静态html文件js读取url参数 location.search; //获取url中"?"符后的字串 下边为转载的 ...
- Emacs和ESS的使用技巧。
1. 安装ESS 有两种方法可以安装,一种是直接使用系统自带的包安装系统,比如yum: # yum install emacs-ess 但是,有时可能不是ESS最新版本.所以,推荐第二种方法,使用Em ...
- Catch That Cow (BFS)
题目: Farmer John has been informed of the location of a fugitive cow and wants to catch her immediate ...
- 在不重启MySQL的情况下用gdb工具设置变量
前提:此方法只是参考其它博客的一个记录,未经亲自验证 当在mysql客户端设置一些变量时提示如下报错: 于是想能否有办法在不重启的情况下设置这些只读变量,在网上搜索别人的博客后发现如下方法 1.命令行 ...
- 新财报再次巨亏 HTC还能活到2017吗?
HTC还能活到2017吗?" title="新财报再次巨亏 HTC还能活到2017吗?"> 当下智能手机行业虽然竞争惨烈,但也称得上是精彩纷呈:性能.外形不断进化, ...
- 深入理解JVM(线程部分) Note
硬件的效率与一致性 由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲:将 ...
- springmvc两种配置方法
基于配置文件xml方式, 配置springmvc步骤: 1.在pom文件中引入jar包: <!--导入springmvc的jar包--> <dependency> <gr ...
- paillier加密算法原理详解
paillier加密算法是一种公钥加密算法,基于复合剩余类的困难问题.满足加法同态,即密文相乘等于明文相加:D(E(m1)·E(m2))=m1+m2.这里详细介绍其加密解密是如何推导的,需要具备数论. ...
- JAVA 中的反射(reflact)
获取反射加载类(获取类的字节码)的3种方式: Class class1=Class.forName("lession_svc.lession_svc.reflact.Person" ...