LeetCodeWeeklyContest-180

2024-01-01 06:48
文章标签 180 leetcodeweeklycontest

本文主要是介绍LeetCodeWeeklyContest-180,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

rank:2240 / 3714
AC: 1/4

题目传送

矩阵中的幸运数

数据范围很小,可以直接暴力

class Solution {
public:vector<int> luckyNumbers (vector<vector<int>>& matrix) {vector<int> res;int m = matrix.size(),n= matrix[0].size();for(int i=0;i<m;i++){for(int j=0;j<n;j++){int t = matrix[i][j],flag=0;for(int k=0;k<n;k++){if(k==j) continue;if(matrix[i][k]<t) {flag =1;break;}}if(flag) continue;for(int k=0;k<m;k++){if(k==i) continue;if(matrix[k][j]>t) {flag =1;break;}}if(!flag) res.push_back(matrix[i][j]);}}return res;}
};

设计一个支持增量操作的栈

其实这个题,说来也简单,但是不知道为啥周赛的时候,死活过不去…
直接用一个数组来维护一个栈即可

class CustomStack {
public:int arr[10005];int msize,top=0;CustomStack(int maxSize):msize(maxSize){}void push(int x) {if(top<msize){arr[top++] = x;}}int pop() {if(top>0) return arr[--top];else return -1;}void increment(int k, int val) {for(int i=0;i<min(top,k);i++){arr[i] += val;}}
};/*** Your CustomStack object will be instantiated and called as such:* CustomStack* obj = new CustomStack(maxSize);* obj->push(x);* int param_2 = obj->pop();* obj->increment(k,val);*/

将二叉搜索树变平衡

这个确实不会
思路是首先利用二叉搜索树的特点,其中序遍历是递增序列,然后再去二分这个序列,这样就可以平衡了
按照正确的思路写的,但是自己写出来会超时,后来发现,build函数nums数组忘了加引用,加了引用之后就过了,原来引用用处这么大…,原谅我的无知…

/*** 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:void dfs(TreeNode* root,vector<int>&nums){  // 加引用if(root==NULL) return ;dfs(root->left,nums);nums.push_back(root->val);dfs(root->right,nums);}TreeNode* build(vector<int>& nums,int l,int r){if(l>r) return NULL;// int mid = (l+r)>>1;int mid = l+(r-l)/2;TreeNode* root = new TreeNode(nums[mid]);root->left = build(nums,l,mid-1);root->right = build(nums,mid+1,r);return root;}TreeNode* balanceBST(TreeNode* root) {if(root==NULL) return NULL;vector<int> nums;dfs(root,nums);return build(nums,0,nums.size()-1);}
};

最大的团队表现值

周赛时写了个背包,然后想都不用想会超时…
这个题的思路是按照效率降序排序,为啥要对效率排序而非速度排序,个人感觉是因为效率对表现值贡献值更大(乘法),而速度是加法。然后再找到一个速度最大的几个(不超过k个),不一定k个才最大,用一个multiset来维护速度的集合,及时更新。
参考: 效率优先,速度跟上 (C++ 贪心)

typedef long long ll;
const ll mod = 1e9+7;
bool cmp(pair<ll,ll>a,pair<ll,ll>b){if(a.first==b.first) return a.second > b.second;else return a.first > b.first;}
class Solution {
public:int maxPerformance(int n, vector<int>& speed, vector<int>& efficiency, int k) {vector<pair<ll,ll>> v;for(int i=0;i<n;i++){v.push_back(make_pair((ll)efficiency[i],(ll)speed[i]));}sort(v.begin(),v.end(),cmp);multiset<int> sp;  // 要用multisetll res = 0,spsum=0;for(int i=0;i<n;i++){if(i<k){sp.insert(v[i].second);spsum += v[i].second;}else{if(v[i].second>*sp.begin()){spsum += v[i].second-*sp.begin();sp.erase(sp.begin());sp.insert(v[i].second);}}res = max(res,spsum*v[i].first); // 由于按照效率降序排序,所以下标所指出即为当前最小值}return res%mod;}
};

这篇关于LeetCodeWeeklyContest-180的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/558439

相关文章

180. 連續出現的數字

180. 连续出现的数字 Question 表:Logs +-------------+---------+| Column Name | Type |+-------------+---------+| id | int || num | varchar |+-------------+---------+在 SQL 中,id 是

【SGU】180. Inversions(归并排序求逆序数)

以前一般用树状数组和线段树做这种题 这次换个思路试试,归并排序! #include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int maxn = 111111;int n;int array[maxn];int tmp[maxn];L

AGV行业遇冷,叉车AGV逆风崛起:180家企业掀起血战

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 在自动化物流领域,一场悄然发生的变革正引领着行业风向的转折。尽管2024年以来,整体AGV(自动引导车)行业因下游市场需求疲软而遭遇增速下滑的困境,但无人叉车这一细分领域却如同一股逆流,展现出前所未有的活力与潜力。 在这场“逆风膨胀”的浪潮中,不仅吸引了资本的密集关注,更激发了行业内外企业的激烈竞争,共同绘制了一幅波澜壮阔的市

180.二叉树:二叉搜索树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(in

问题:设开环系统的频率特性为则其相频特性穿越-180°线时对应的频率为()。 #学习方法#微信

问题:设开环系统的频率特性为则其相频特性穿越-180°线时对应的频率为()。 ? A、10rad1s B、3rad/s C、lradIs D、√3rad/s 参考答案如图所示

ENVI6.0试用版(180天)详细安装教程,附安装包链接和一些常见问题

ENVI6.0试用版(180天)详细安装教程,附安装包链接和一些常见问题 文章目录 ENVI6.0试用版(180天)详细安装教程,附安装包链接和一些常见问题前言环境来源安装激活问题 前言 如标题所示,这个只是试用版,180天的期限,仅适用于个人学习。下面是我帮朋友安装过程的简单记录,因为之前就有使用过ENVI5.6.3版本,下载流程跟这次的类似,这次安装特地记录一下以及自己遇

Mate 60系列等180款设备可升级鸿蒙 4.2,更多趣味玩法等你探索

5 月 15 日,在华为夏季全场景新品发布会上,华为官宣了 HarmonyOS 4.2 升级计划,目前鸿蒙生态设备数量超8亿台,越来越多的用户将享受到更好玩、更智慧、更流畅、更安全的新一代操作系统! 另外,Mate 60系列等180款设备可陆续升级HarmonyOS 4.2,覆盖手机、平板、手表、智慧屏等。此次HarmonyOS 4.2在互动主题、AI智慧体验、流畅性能、纯净安全等方面全新升

力扣数据库题库学习(5.15日)--180. 连续出现的数字

180. 连续出现的数字 问题链接👍 思路 要解决这个问题,我们可以使用MySQL的窗口函数来找出至少连续出现三次的数字。具体方法是使用**窗口函数LAG()**来比较当前行的数字与前两行的数字,如果它们相同,就说明该数字连续出现了三次。 解答 具体的sql语句如下: SELECT DISTINCT num AS ConsecutiveNumsFROM (SELECTnum,LAG

SCP收容物171~180

注 :此文接SCP收容物161~170,本文只供开玩笑 ,与steve_gqq_MC合作 --------------------------------------------------------------------------------------------------------------------------------- 目录 scp-171 scp-172 s