2020-7-20/28刷leetcode题记

文章目录

      • 简单题167. 两数之和 II - 输入有序数组
        • URL
      • 简单题 717. 1比特与2比特字符
        • URL
      • 简单题 7.整数反转
        • URL
      • 简单题 14. 最长公共前缀
        • URL
      • 简单题 13. 罗马数字转整数
        • URL
      • 简单题 20. 有效的括号
        • URL
      • 简单题 21. 合并两个有序链表
        • URL
      • 简单题 392. 判断子序列
        • URL
      • 中等题 3. 无重复字符的最长子串
        • URL
      • 简单题 104. 二叉树的最大深度
        • URL

简单题167. 两数之和 II - 输入有序数组

URL

有一个样例超时:

class Solution {
public:
    vector twoSum(vector& numbers, int target) {
        vector indices(2);
        for(int i=0;i
class Solution {
public:
    vector twoSum(vector& numbers, int target) {
        vector indices(2);
        int l=0, r=numbers.size()-1;
        while(l

简单题 717. 1比特与2比特字符

URL

class Solution {
public:
    bool isOneBitCharacter(vector& bits) {
        int len = bits.size()-1;
        int i = 0;
        int temp[1000];
        int tmp = 0;
        while(i <= len)
        {
            if(bits[i] == 1)
            {
                i = i+2;
                temp[tmp++] = 2;
            }
            else
            {
                i = i+1;
                temp[tmp++] = 1;
            }
        }
        if(i == len+1 && temp[tmp-1] == 1)
            return true;
        else
            return false;
    }
};

简单题 7.整数反转

URL

class Solution {
public:
    int reverse(int x) {
        long n = 0;
        while(x)
        {
            n = n * 10 + x % 10;
            x /= 10;
        }
        if(n>INT_MAX || n

简单题 14. 最长公共前缀

URL

class Solution {
public:
    string longestCommonPrefix(vector& strs) {
        if(strs.size() == 0)
            return "";
        int mins = 1000000;
        int poc = -1;
        for(int i=0;i

简单题 13. 罗马数字转整数

URL

class Solution {
public:
    int romanToInt(string s) {
        int num = 0;
        for(int i=0;i

简单题 20. 有效的括号

URL

class Solution {
public:
    bool isValid(string s) {
        if(s.size() % 2)
            return false;
        int num[s.size()+10];
        int top = -1;
        for(int i=0;i=0 && num[top] == 1)
            {
                top--;
            }
            else if(s[i] == ']' && top >= 0 && num[top] == 2)
            {
                top--;
            }
            else if(s[i] == '}' && top >= 0 && num[top] == 3)
            {
                top--;
            }
        }
        if(top == -1)
            return true;
        else
            return false;
    }
};

简单题 21. 合并两个有序链表

URL

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        ListNode *head, *tail;
        head = new ListNode;
        head->next = NULL;
        tail = head;
        while(l1 && l2)
        {
            if(l1->val > l2->val)
            {
                tail->next = l2;
                tail = l2;
                l2 = l2->next;
            }
            else
            {
                tail->next = l1;
                tail = l1;
                l1 = l1->next;
            }
        }
        if(l1)
        {
            tail->next = l1;
        }
        else
        {
            tail->next = l2;
        }
        return head->next;
    }
};

简单题 392. 判断子序列

URL

class Solution {
public:
    bool isSubsequence(string s, string t) {
        int top = 0;
        for(int i=0;i= s.size())
                break;
        }
        if(top >= s.size())
            return true;
        else
            return false;
    }
};

中等题 3. 无重复字符的最长子串

URL

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        temp = ""
        mlen = 0
        for c in s:
            if c not in temp:
                temp += c
                if mlen < len(temp):
                    mlen = len(temp)
            elif c in temp:
                temp = temp.split(c)[1] + c
        return mlen

简单题 104. 二叉树的最大深度

URL

/**
 * 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:
    int maxDepth(TreeNode* root) {
        int ldepth, rdepth;
        if(!root)
            return 0;
        else
        {
            ldepth = maxDepth(root->left);
            rdepth = maxDepth(root->right);
            if(ldepth > rdepth)
                return ldepth + 1;
            else
                return rdepth + 1;
        }
    }
};

你可能感兴趣的:(leetcode刷题)