LeetCode Weekly Contest 27
Reverse Words in a String III
简单暴力翻转
class Solution {
public:string rev(string s){int len=s.length();int i=0,j=len-1;while(i<j){char temp=s[i];s[i]=s[j];s[j]=temp;i++;j--;}return s;}string reverseWords(string s) {int len=s.length();string ans="";int j=0,i;for(i=0;i<len;i++){if(s[i]==' '){string b=s.substr(j,i-j);ans=ans+rev(b)+" ";j=i+1;}}string b=s.substr(j,i-j);ans=ans+rev(b);return ans;}
};
Brick Wall
使用map或者set存一下数据就能轻松ac
class Solution {
public:int leastBricks(vector<vector<int> >& wall) {map<int,int> st;int len=wall.size();int ans=0,mx=0;for(int i=0;i<len;i++){int wid=wall[i].size();int sum=0;for(int j=0;j<wid;j++)sum+=wall[i][j];if(sum>mx)mx=sum;}for(int i=0;i<len;i++){int wid=wall[i].size();int sum=0;for(int j=0;j<wid;j++){sum+=wall[i][j];st[sum]++;if(st[sum]>ans&&sum!=mx)ans=st[sum];}}return len-ans;}
};
Next Greater Element III
给定一个32位整数n,您需要找到最小的32位整数,它与整数n中存在完全相同的数字,值大于n
贪心思路:从个位到高位,找到第一个逆序的位,和之前的大于它的最小数字交换,然后排序比它的低位所有数就行了
这样做保证正解的原因是我们确定了第一个可以变得更大的位,改变这个位后,这个位后面数字当然是越小越好
int cmp(int x,int y)
{return x>y;
}
class Solution {
public:int b[12],a[12];int nextGreaterElement(int n) {int idx=0;int shit=n;while(n>0){a[idx++]=n%10;n/=10;}memset(b,-1,sizeof(b));b[a[0]]=0;bool flag=true;int ans=-1;for(int i=1;i<idx;i++){if(!flag) break;if(a[i]<a[i-1]){int j=a[i]+1;while(j<10&&b[j]==-1)j++;if(j<=a[i-1]) {flag=false;// cout<<j<<" "<<b[j]<<endl;int temp=a[i];a[i]=a[b[j]];a[b[j]]=temp;sort(a,a+i,cmp);// cout<<i<<endl;}}b[a[i]]=i;// printf("%d\n",b[a[i]]);}int sum=0;for(int i=idx-1;i>=0;i--){sum=sum*10+a[i];}if(sum>ans&&sum>shit)ans=sum;return ans;}
};
Binary Tree Longest Consecutive Sequence II
找二叉树的最长连续序列
很简单的dfs,也可以说的简单树规吧。思路是每的结点的最长序列是:
1+左子树递增最长+右子树递减最长 或者 1+左子树递增最长+右子树递减最长啦,我们的返回值存这两个东西就ok
class Solution {
public:struct fuck{int x,y;};int ass;int fb(int x){if(x>0) return x;return -x;}fuck dfs(TreeNode* root){if(root==NULL){fuck ans;ans.x=0;ans.y=0;return ans;}fuck a=dfs(root->left);fuck b=dfs(root->right);fuck ans;ans.x=1;ans.y=1;int mx,my;mx=my=0;if(root->left!=NULL){int aa=root->left->val;if(root->val-aa==1)mx=max(mx,a.x);else if(aa-root->val==1)my=max(my,a.y);}if(root->right!=NULL){int bb=root->right->val;if(root->val-bb==1)mx=max(mx,b.x);else if(bb-root->val==1)my=max(my,b.y);}ans.x+=mx;ans.y+=my;if(ans.x+ans.y-1>ass)ass=ans.x+ans.y-1;return ans;}int longestConsecutive(TreeNode* root) {ass=0;dfs(root);return ass;}
};
转载于:https://www.cnblogs.com/bitch1319453/p/6684181.html
LeetCode Weekly Contest 27相关推荐
- LeetCode Weekly Contest 25 之 545.Boundary of Binary Tree
LeetCode Weekly Contest 25 赛题 本次周赛主要分为以下4道题: 507 Perfect Number (3分) 537 Complex Number Multiplicati ...
- LeetCode weekly contest 190 周赛
5/23/20 第二次打周赛.全部通过AC.纪念一下.最后一题DP用的不是最优解,写了2次bug version. 可以去Github直接看我其他leetcode代码. Q1455_Check If ...
- LeetCode Weekly Contest 185
5388. 重新格式化字符串 给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母. 请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同.也就是说,字母后面应该跟着数字,而数字后面 ...
- LeetCode Weekly Contest 199
5472. 重新排列字符串 题目难度Easy 给你一个字符串 s 和一个 长度相同 的整数数组 indices . 请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的 ...
- LeetCode——Weekly Contest 314
LeetCode周赛第314场记录 2432. 处理用时最长的那个任务的员工 周赛第一题,根据题意写出代码即可.首先根据logs计算出每项工作的实际用时,然后根据用时长短对员工的ID号进行排序即可.给 ...
- LeetCode Weekly Contest 194
1486. 数组异或操作 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 ...
- LeetCode Weekly Contest 142
又是两道题目,感觉rank要掉了呀~ 第一道看错题目了,然后浪费了很长时间,第三道很简单,思路也有,但是没时间了. 1093. Statistics from a Large Sample We sa ...
- LeetCode笔记:Weekly Contest 280
LeetCode笔记:Weekly Contest 280 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4 ...
- LeetCode之Weekly Contest 90
LeetCode第90场周赛记录 第一题:亲密字符串 问题: 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true :否则返回 ...
最新文章
- 首席信息官利用AI提升自身地位的三种方法
- 产业|一文读懂自动驾驶汽车产业链上下游
- Single Page Application概览
- 计算机常发故障英语,vipkid英语常见问题解决办法
- Linux环境下编程有哪些优势?
- 无线投影仪服务器设置方法,无线投影仪怎么连接,看过教程,原来操作这么简单!...
- date类型被fastjson变为long类型一串数字
- SLAM--LSD_SLAM在高版本系统中运行(ubuntu20.04 ROS-noetic)
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
- PhpStorm修改字体和主题
- 树莓派 raspbian (各版本)换国内源
- Google Earth Engine(GEE)——MODIS影像StateQA波段bit去云
- unable to write file .git/objects/8a/5a043a43c0dad68ceb65f5a7bd9f7e7a70078b: Permission denied
- android 6.0 EC20驱动移植
- 中国企业的商业模式创新
- python怎么爬取电影海报_豆瓣top250海报原图爬取
- 高德地图-微信小程序
- 防火墙的发展史及技术应用
- MC我的世界 模拟城市模组 Sim-U 1.8.9正式发布
- 鼠标的移入、移出事件与css中的hover伪类