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相关推荐

  1. LeetCode Weekly Contest 25 之 545.Boundary of Binary Tree

    LeetCode Weekly Contest 25 赛题 本次周赛主要分为以下4道题: 507 Perfect Number (3分) 537 Complex Number Multiplicati ...

  2. LeetCode weekly contest 190 周赛

    5/23/20 第二次打周赛.全部通过AC.纪念一下.最后一题DP用的不是最优解,写了2次bug version. 可以去Github直接看我其他leetcode代码. Q1455_Check If ...

  3. LeetCode Weekly Contest 185

    5388. 重新格式化字符串 给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母. 请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同.也就是说,字母后面应该跟着数字,而数字后面 ...

  4. LeetCode Weekly Contest 199

    5472. 重新排列字符串 题目难度Easy 给你一个字符串 s 和一个 长度相同 的整数数组 indices . 请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的 ...

  5. LeetCode——Weekly Contest 314

    LeetCode周赛第314场记录 2432. 处理用时最长的那个任务的员工 周赛第一题,根据题意写出代码即可.首先根据logs计算出每项工作的实际用时,然后根据用时长短对员工的ID号进行排序即可.给 ...

  6. LeetCode Weekly Contest 194

    1486. 数组异或操作 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 ...

  7. LeetCode Weekly Contest 142

    又是两道题目,感觉rank要掉了呀~ 第一道看错题目了,然后浪费了很长时间,第三道很简单,思路也有,但是没时间了. 1093. Statistics from a Large Sample We sa ...

  8. LeetCode笔记:Weekly Contest 280

    LeetCode笔记:Weekly Contest 280 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4 ...

  9. LeetCode之Weekly Contest 90

    LeetCode第90场周赛记录 第一题:亲密字符串 问题: 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true :否则返回  ...

最新文章

  1. 首席信息官利用AI提升自身地位的三种方法
  2. 产业|一文读懂自动驾驶汽车产业链上下游
  3. Single Page Application概览
  4. 计算机常发故障英语,vipkid英语常见问题解决办法
  5. Linux环境下编程有哪些优势?
  6. 无线投影仪服务器设置方法,无线投影仪怎么连接,看过教程,原来操作这么简单!...
  7. date类型被fastjson变为long类型一串数字
  8. SLAM--LSD_SLAM在高版本系统中运行(ubuntu20.04 ROS-noetic)
  9. BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
  10. PhpStorm修改字体和主题
  11. 树莓派 raspbian (各版本)换国内源
  12. Google Earth Engine(GEE)——MODIS影像StateQA波段bit去云
  13. unable to write file .git/objects/8a/5a043a43c0dad68ceb65f5a7bd9f7e7a70078b: Permission denied
  14. android 6.0 EC20驱动移植
  15. 中国企业的商业模式创新
  16. python怎么爬取电影海报_豆瓣top250海报原图爬取
  17. 高德地图-微信小程序
  18. 防火墙的发展史及技术应用
  19. MC我的世界 模拟城市模组 Sim-U 1.8.9正式发布
  20. 鼠标的移入、移出事件与css中的hover伪类

热门文章

  1. Exchange server 2010系列教程之一 安装Exchange 2010准备条件
  2. Flask框架-基本使用
  3. osg 改变模型贴图
  4. “习惯性思维”引起的血案
  5. 判断接收的数据中是否有中文
  6. Java内存模型(转载)
  7. MapReduce源码分析之作业Job状态机解析(一)简介与正常流程浅析
  8. webservice(二)简单实例
  9. 学好Linux必备知识
  10. Facebook和Google,做不了恋人做仇人