Leetcode(无重复字符的最长子串;删除排序链表中的重复元素II;加一;最后一个单词的长度;相同的树)
Posted 钢印
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode(无重复字符的最长子串;删除排序链表中的重复元素II;加一;最后一个单词的长度;相同的树)相关的知识,希望对你有一定的参考价值。
1.无重复字符的最长子串
这题需要用到滑动窗口法,有许多问题都可以考虑使用滑动窗口法:https://www.geeksforgeeks.org/tag/sliding-window/
因为用c++,所以用到set容器:std::count
2.删除排序链表中的重复元素II
3.加一
1 class Solution { 2 public: 3 vector<int> plusOne(vector<int>& digits) { 4 int n=digits.size()-1; 5 int add=1; 6 for(int i=n;i>=0;){ 7 if(digits[i]==9){ 8 digits[i]=0; 9 add=1; 10 i--; 11 } 12 else{ 13 digits[i]++; 14 return digits; 15 } 16 } 17 if(add==1) 18 digits.insert(digits.begin(),1); 19 return digits; 20 } 21 };
4.最后一个单词的长度
1 class Solution { 2 public: 3 int lengthOfLastWord(string s) { 4 int right=s.size()-1; 5 int length=0; 6 for(int r=right;r>=0;){ 7 if(s[r]!=‘ ‘){ 8 length++; 9 r--; 10 } 11 else{ 12 if(length==0) 13 r--; 14 else 15 break; 16 } 17 } 18 return length; 19 } 20 };
5.相同的树
/** * 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: bool isSameTree(TreeNode* p, TreeNode* q) { if (p == NULL && q == NULL) return true; if (q == NULL || p == NULL) return false; if (p->val != q->val) return false; return isSameTree(p->right, q->right) && isSameTree(p->left, q->left); } };
以上是关于Leetcode(无重复字符的最长子串;删除排序链表中的重复元素II;加一;最后一个单词的长度;相同的树)的主要内容,如果未能解决你的问题,请参考以下文章