Leetcode(无重复字符的最长子串;删除排序链表中的重复元素II;加一;最后一个单词的长度;相同的树)

2021-02-20 15:21

阅读:413

标签:leetcode   int   col   滑动   git   ret   efi   使用   div   

1.无重复字符的最长子串

这题需要用到滑动窗口法,有许多问题都可以考虑使用滑动窗口法:https://www.geeksforgeeks.org/tag/sliding-window/

因为用c++,所以用到set容器:std::count

 

2.删除排序链表中的重复元素II

3.加一

 1 class Solution {
 2 public:
 3     vectorint> plusOne(vectorint>& 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;加一;最后一个单词的长度;相同的树)

标签:leetcode   int   col   滑动   git   ret   efi   使用   div   

原文地址:https://www.cnblogs.com/gangyin/p/12641620.html


评论


亲,登录后才可以留言!