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 ...
随机推荐
- Java Enum 枚举的简单使用
一.什么是枚举 值类型的一种特殊形式,它从 System.Enum 继承,并为基础基元类型的值提供备用名称.枚举类型有名称.基础类型和一组字段.基础类型必须是一个内置的有符号(或无符号)整数类型(如 ...
- python中使用xlrd读excel使用xlwt写excel
原文地址 :http://www.bugingcode.com/blog/python_xlrd_read_excel_xlwt_write_excel.html 在数据分析和运营的过程中,有非常多的 ...
- scrollIntoView 前的元素滚动到浏览器窗口的可视区域内 不止垂直滚动,还有水平滚动
Element.scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内 element.scrollIntoView(); // 等同于element.scrollIntoVi ...
- B站实战第三天
B站实战第三天 用了两天多的时间才把B站页面的头部写完,今天来写头部下面的导航栏部分和轮播图一些模块. 因为还没学js,轮播图部分用swiper来实现. 今天首先复习的知识点是弹性盒模型. 弹性盒模型 ...
- 机器学习 —— 数据预处理
对于学习机器学习算法来说,肯定会涉及到数据的处理,因此一开始,对数据的预处理进行学习 对于数据的预处理,大概有如下几步: 步骤1 -- 导入所需库 导入处理数据所需要的python库,有如下两个库是非 ...
- pattern space and hold space of sed
Copied from: stackoverflow When sed reads a file line by line, the line that has been currently read ...
- 马云也看好!VR在2016年能否得到质变
在2015年10月底有消息传出,国外虚拟现实公司Magic Lea的新一轮融资吸引到中国互联网巨鳄--阿里巴巴公司的关注.据透露,阿里巴巴极有可能为Magic Lea投资2亿美元.这虽然是阿里巴巴第一 ...
- Oops 的栈信息分析
MTK MT55 F3600 平台 现象:播放MP4文件不断快退或者快进系统重启. 关键log: Kernel panic - not syncing: x_msg_q_receive(): not ...
- celery beat之pidfile already exists问题
背景 在进行celery定时任务测试时,发现到点任务并未执行,检查了log发现在启动celery beat的时候有这样一个报错,所以celery beat并未启动成功. 1234 (hzinfo) E ...
- android应用程序源码结构分析
工程; 1. src文件夹存放源码. 2. gen下有跟src中一样的包文件,内部有一个名为R.java类,它是自动生成的一个类:该目录不用我们开发人员维护, 但又非常重要的目录 . 该目录用来存放由 ...