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场周赛的更多相关文章

  1. LeetCode | 第180场周赛--5356矩阵中的幸运数

    给你一个 m * n 的矩阵,矩阵中的数字 各不相同 .请你按 任意 顺序返回矩阵中的所有幸运数. 幸运数是指矩阵中满足同时下列两个条件的元素: 在同一行的所有元素中最小 在同一列的所有元素中最大 示 ...

  2. LeetCode 第 165 场周赛

    LeetCode 第 165 场周赛 5275. 找出井字棋的获胜者 5276. 不浪费原料的汉堡制作方案 5277. 统计全为 1 的正方形子矩阵 5278. 分割回文串 III C 暴力做的,只能 ...

  3. Leetcode第 217 场周赛(思维量比较大)

    Leetcode第 217 场周赛 比赛链接:点这里 做完前两题我就知道今天的竞赛我已经结束了 这场比赛思维量还是比较大的. 1673. 找出最具竞争力的子序列 题目 给你一个整数数组 nums 和一 ...

  4. Leetcode 第133场周赛解题报告

    今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看 ...

  5. LeetCode第151场周赛(Java)

    这是我第一次写周赛的题目,而且还是虚拟的.从这次起,以后就将所有错过的题目都写到博客来.当然既然是我错的,那代码肯定不是我自己的.我会注明来源.并且我会自己敲一遍.多总结总是没坏处的. 另外比较糟糕的 ...

  6. LeetCode第152场周赛(Java)

    这算是我第一次正式参加 LeetCode 的周赛吧.通过两道题.意料之中(通过上次模拟可以看出来).总的来说,脑袋还是不太灵光.想的有点慢.全球第一名 0:10:19 就全部通过...感觉我的智商被狠 ...

  7. Leetcode 第136场周赛解题报告

    周日的比赛的时候正在外面办事,没有参加.赛后看了下题目,几道题除了表面要考的内容,还是有些能发散扩展的地方. 做题目不是最终目的,通过做题发现知识盲区,去研究学习,才能不断提高. 理论和实际是有关系的 ...

  8. Leetcode 第137场周赛解题报告

    今天的比赛的题目相对来说比较「直白」,不像前几周都是一些特定的算法,如果你没学过不可能想出来. 做了这些周,对leetcode比赛的题目也发现了一些「规律」. 一般前两道题都很「简单」,只要有想法,直 ...

  9. LeetCode 第 150 场周赛

    一.拼写单词(LeetCode-1160) 1.1 题目描述 1.2 解题思路 由于给定的chars,每个字母只能用一次,所以用大小为26的数组charsArray来表示a-z(例如charsArra ...

  10. LeetCode 第 196 场周赛 (题目:5452-5455,这是参加过最坑的周赛,暴力n^2居然可以过)

    5452. 判断能否形成等差数列   给你一个数字数组 arr . 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 . 如果可以重新排列数组形成等差数列,请返回 tru ...

随机推荐

  1. Java Enum 枚举的简单使用

    一.什么是枚举 值类型的一种特殊形式,它从 System.Enum 继承,并为基础基元类型的值提供备用名称.枚举类型有名称.基础类型和一组字段.基础类型必须是一个内置的有符号(或无符号)整数类型(如 ...

  2. python中使用xlrd读excel使用xlwt写excel

    原文地址 :http://www.bugingcode.com/blog/python_xlrd_read_excel_xlwt_write_excel.html 在数据分析和运营的过程中,有非常多的 ...

  3. scrollIntoView 前的元素滚动到浏览器窗口的可视区域内 不止垂直滚动,还有水平滚动

    Element.scrollIntoView() 方法让当前的元素滚动到浏览器窗口的可视区域内 element.scrollIntoView(); // 等同于element.scrollIntoVi ...

  4. B站实战第三天

    B站实战第三天 用了两天多的时间才把B站页面的头部写完,今天来写头部下面的导航栏部分和轮播图一些模块. 因为还没学js,轮播图部分用swiper来实现. 今天首先复习的知识点是弹性盒模型. 弹性盒模型 ...

  5. 机器学习 —— 数据预处理

    对于学习机器学习算法来说,肯定会涉及到数据的处理,因此一开始,对数据的预处理进行学习 对于数据的预处理,大概有如下几步: 步骤1 -- 导入所需库 导入处理数据所需要的python库,有如下两个库是非 ...

  6. 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 ...

  7. 马云也看好!VR在2016年能否得到质变

    在2015年10月底有消息传出,国外虚拟现实公司Magic Lea的新一轮融资吸引到中国互联网巨鳄--阿里巴巴公司的关注.据透露,阿里巴巴极有可能为Magic Lea投资2亿美元.这虽然是阿里巴巴第一 ...

  8. Oops 的栈信息分析

    MTK MT55 F3600 平台 现象:播放MP4文件不断快退或者快进系统重启. 关键log: Kernel panic - not syncing: x_msg_q_receive(): not ...

  9. celery beat之pidfile already exists问题

    背景 在进行celery定时任务测试时,发现到点任务并未执行,检查了log发现在启动celery beat的时候有这样一个报错,所以celery beat并未启动成功. 1234 (hzinfo) E ...

  10. android应用程序源码结构分析

    工程; 1. src文件夹存放源码. 2. gen下有跟src中一样的包文件,内部有一个名为R.java类,它是自动生成的一个类:该目录不用我们开发人员维护, 但又非常重要的目录 . 该目录用来存放由 ...