精华内容
下载资源
问答
  • LeetCode Top 100高频算法,即LeetCode上最高频的100道求职面试算法。小编和实验室同学之前面试找工作,也只刷了剑指offer和这top 100算法,在实际面试中也遇到了很多LeetCode上的原。剑指offer算法最优解...

    LeetCode Top 100高频算法题,即LeetCode上最高频的100道求职面试算法题。小编和实验室同学之前面试找工作,也只刷了剑指offer和这top 100算法题,在实际面试中也遇到了很多LeetCode上的原题。剑指offer算法最优解之前和大家分享了,LeetCode Top 100这100道算法题,每道题小编都刷了很多遍,并且总结了一种最适合面试时手撕算法的最优解法。后续每天和大家分享一道LeetCode top 100高频算法题,以及小编总结的最优解法。

    1. 算法题顺序

    LeetCode Top 100 高频算法题系列的LeetCode算法题目就不帮大家翻译了,程序员应该需要能看懂。LeetCode算法题有一个技巧:先看每道题的example,大部分情况看完example就能理解题目意思;如果看完example还有疑惑,可以再回过头来看英文题目。这样也可以节省一点时间~

    1. 题目描述

    Given a string s, return the longest palindromic substring in s.

    经典的题目,最长回文子串,所谓回文字符串:正反字符串相等
    2. Examples
    1th example

    Input: s = “babad”
    Output: “bab”
    Note: “aba” is also a valid answer.

    2th example

    Input: s = “cbbd”
    Output: “bb”

    3th example

    Input: s = “a”
    Output: “a”
    4th example
    Input: s = “ac”
    Output: “a”

    1. Constraints(输入的数据约束)
    • 1 <= s.length <= 1000
    • s consist of only digits and English letters (lower-case and/or upper-case),

    解析

    在LeetCode上本题属于Medium难度。是典型的动态规划类型题目:直接上代码,代码中有详细的注释;代码中提供了2种解法,暴力解法和动态规划

    class Solution {
        public String longestPalindrome(String s){
            int length = s.length();
            boolean[][] dp = new boolean[length][length];
            
            int startIndex = 0;
            int maxLength = 0;
            /*
            为什么i是从后往前比遍历呢? 如何判断 i到j是否是回文呢?取决于i+1到j-1的字符串是否是回文,即dp[i]计算的时候,最好是dp[i+1]已经计算完成了
            比如:子串:abca,是否是回文取决于子串bc是否是回文(s[0]=s[3]='a'),而子串bc不是回文,即dp[i][j]与dp[i+1][j-1]有关
            即dp[i+1]需要在dp[i]之前计算好,所以是从后往遍历
            */
            for(int i=length-1;i>=0;i--){
                for(int j=i;j<length;j++){
                    dp[i][j] = ( s.charAt(i)==s.charAt(j) ) && ( j-i<3 || dp[i+1][j-1]);
                    if(dp[i][j]&&j-i+1>maxLength){
                        startIndex = i;
                        maxLength = j-i+1;
                    }
                    
                }
            }
            return s.substring(startIndex,startIndex+maxLength);
            
        }
        
        
        /*public String longestPalindrome(String s) {
            if(s.length()<=1) return s;
            
            int len = s.length();
            boolean[][] dp = new boolean[len][len];
            
            int start = 0;
            int max = -1;
            
            
            //以s.charAt(i)结尾,s.charAt(j)开头的字符串是否是回文
            for(int i=0;i<len;i++)
                for(int j=i;j>=0;j--){
                    dp[j][i] = (s.charAt(j)==s.charAt(i)) &&( i-j<3 || dp[j+1][i-1] );
                    if(dp[j][i] && i-j+1>max){
                        max = i-j+1;
                        start = j;
                    }
                }
            
            return s.substring(start,start+max);
        }*/
    }
    

    其他文章

    1. 免费帮忙下载csdn和百度文库资料福利
    2. 学习笔记和学习资料汇总:前端 + 后端 + java + 大数据 + python + 100多实战项目 + C++
    3. 我的秋招经历总结:一站式秋招规划
    4. 零基础学爬虫
    5. 零基础C++学习总结

    欢迎关注个人公众号【菜鸟名企梦】,公众号专注:互联网求职面经javapython爬虫大数据等技术分享:
    公众号菜鸟名企梦后台发送“csdn”即可免费领取【csdn】和【百度文库】下载服务;

    公众号菜鸟名企梦后台发送“资料”:即可领取5T精品学习资料java面试考点java面经总结,以及几十个java、大数据项目,资料很全,你想找的几乎都有

    扫码关注,及时获取更多精彩内容。(博主985、A+学科硕士,今日头条大数据工程师)

    展开全文
  • LeetCode Top100笔记

    2019-10-16 16:22:25
    打算做完top100,用来熟悉一些语言基本的操作和开阔一下自己的眼界,学习大牛的解题方法。 1. Two Sum 题目描述: 给定整数数组,返回指标在这两个数字中,它们加起来是一个特定的目标。 笔记地址: ...

    LeetCode做题笔记

    打算做完top100,用来熟悉一些语言基本的操作和开阔一下自己的眼界,学习大牛的解题方法。

    1. Two Sum

    题目描述:
    给定整数数组,返回指标在这两个数字中,它们加起来是一个特定的目标。

    笔记地址:https://blog.csdn.net/sodwater/article/details/85233993

    展开全文
  • LeetCode Top 100高频算法,即LeetCode上最高频的100道求职面试算法。小编和实验室同学之前面试找工作,也只刷了剑指offer和这top 100算法,在实际面试中也遇到了很多LeetCode上的原。剑指offer算法最优解...

    LeetCode Top 100高频算法题,即LeetCode上最高频的100道求职面试算法题。小编和实验室同学之前面试找工作,也只刷了剑指offer和这top 100算法题,在实际面试中也遇到了很多LeetCode上的原题。剑指offer算法最优解之前和大家分享了,LeetCode Top 100这100道算法题,每道题小编都刷了很多遍,并且总结了一种最适合面试时手撕算法的最优解法。后续每天和大家分享一道LeetCode top 100高频算法题,以及小编总结的最优解法。

    下面是第005是道算法题:

    1. 算法题顺序
      LeetCode Top 100 高频算法题系列的LeetCode算法题目就不帮大家翻译了,程序员应该需要能看懂。LeetCode算法题有一个技巧:先看每道题的example,大部分情况看完example就能理解题目意思;如果看完example还有疑惑,可以再回过头来看英文题目。这样也可以节省一点时间~

    2. 题目描述

    Given an input string (s) and a pattern §, implement regular expression matching with support for ‘.’ and ‘’ where:
    ‘.’ Matches any single character.
    '
    ’ Matches zero or more of the preceding element.
    The matching should cover the entire input string (not partial).

    简而言之,判断一个只包括字符 以及 ‘.’ 和 ‘*’ 的正则表达式是否能够完整匹配输入的字符串
    2. Examples
    1th example

    Input: s = “aa”, p = “a”
    Output: false
    Explanation: “a” does not match the entire string “aa”.

    2th example

    Input: s = “aa”, p = “a*”
    Output: true
    Explanation: ‘*’ means zero or more of the preceding element, ‘a’. Therefore, by repeating ‘a’ once, it becomes “aa”.

    3th example

    Input: s = “ab”, p = “."
    Output: true
    Explanation: ".
    ” means “zero or more (*) of any character (.)”.

    4th example

    Input: s = “aab”, p = “cab”
    Output: true
    Explanation: c can be repeated 0 times, a can be repeated 1 time. Therefore, it matches “aab”.

    5th example

    Input: s = “mississippi”, p = “misisp*.”
    Output: false

    1. Constraints(输入的数据约束)

    0 <= s.length <= 20
    0 <= p.length <= 30
    s contains only lowercase English letters.
    p contains only lowercase English letters, ‘.’, and ‘’.
    It is guaranteed for each appearance of the character '
    ’, there will be a previous valid character to match.

    解析
    在LeetCode上本题属于Hard难度。这道题也是一道典型的动态规划类型题目,动态规划类型题目非常重要,这类题目也是面试中的常客!!
    直接上代码,代码中有详细的注释;

    class Solution {
        /*
        dp[i+1][j+1]:s.subString(0,i+1)是否匹配p.substring(0,j+1),即前i个字符能否被pattern的前j个字符匹配
           初始化:dp[0][0]表示空pateen匹配空字符串,true
                  i>=1,dp[i][0]应该为false, 因为空的pattern不能匹配任何非空的字符串,不过dp默认就是false
                  i>=1,dp[0][i],取决于p.charAt(i-1)是否为*,以及dp[0][i-2]是否为true(即s.substring(0,i-2)是否可以匹配空串,s.charAt(i-2)不重要,因为可出现0次。                                                                                                                                  为可出现0次。
                  
    dp[0][i]表示当前的pattern是否可以匹配 “”空串,只有当dp[0][i-3]字符可以匹配空串并且第i-1位为*时才可以匹配空串
        1, If p.charAt(j) == s.charAt(i) :  dp[i+1][j+1] = dp[i][j];
        2, If p.charAt(j) == '.' : dp[i+1][j+1] = dp[i][j];  可以直接匹配
        
        3, If p.charAt(j) == '*': 
              here are two sub conditions:
                   1   if p.charAt(j-1) != s.charAt(i) && p.charAt(i-1) != '.': dp[i+1][j+1] = dp[i+1][j-1]  // a* only counts as empty:*不能用上
                   2   if p.charAt(i-1) == s.charAt(i) or p.charAt(i-1) == '.':
                                 dp[i+1][j+1] = dp[i+1][j-1]   // in this case, a* counts as empty
                               or dp[i+1][j+1] = dp[i][j-1]   // in this case, a* counts as single a
                               or dp[i+1][j+1] = dp[i][j+1]    //in this case, a* counts as multiple a 
        4.其他情况表名pattern的前j个字符不能匹配上str的前i个字符
        */
        public boolean isMatch(String s, String p) {
    
        if (s == null || p == null) {
            return false;
        }
        boolean[][] dp = new boolean[s.length()+1][p.length()+1];//dp[s.length][p.length]:s的前length个字符能否被pattern的前length字符匹配
        dp[0][0] = true;
            
        for (int i = 0; i < p.length(); i++) {
            if (p.charAt(i) == '*' && dp[0][i-1]) {
                dp[0][i+1] = true;
            }
        }
            
            
        for (int i = 0 ; i < s.length(); i++) {
            for (int j = 0; j < p.length(); j++) {
                if (p.charAt(j) == s.charAt(i) || p.charAt(j) == '.') {
                    dp[i+1][j+1] = dp[i][j];//直接匹配上
                }else if (p.charAt(j) == '*') {
                    if (p.charAt(j-1) != s.charAt(i) && p.charAt(j-1) != '.') {//*无效,只能表示出现0次,
                        dp[i+1][j+1] = dp[i+1][j-1];//表示*匹配0次
                    } else if(p.charAt(j-1) == s.charAt(i) || p.charAt(j-1) == '.'){//*有效,但是也可以选择匹配:0次、1次和多次
                        dp[i+1][j+1] = (dp[i+1][j-1] || dp[i][j-1] || dp[i][j+1] );
                    }
                }//如果p.charAt(j) != '*',则表示patern的前j个字符不能匹配str的前i个字符,这种情况默认为false
            }
        }
        return dp[s.length()][p.length()];
    }
    }
    
    /*
    String match, and it is a typical DP problem.
    
    create a two dimension table dp[s.length()+1][p.length()+1]
    
    so dp[i][j] means whether string [0, i-1] matches pattern [0, j-1]
    and dp[i+1][j+1] means whether string [0, i] matches pattern [0, j]
    
    to initialize, dp[0][0] should be true, which means empty string matches empty string.
    and dp[i][0] should be always false, when string is not empty, but the pattern is empty.
    and dp[0][j] depends on whether there are ‘*, because * could match empty string, for example ‘a*’ could match an empty string
    
    to get the value dp[i+1][j+1]:
    1. the simplest way, if s[i]==p[j]|| p[j]==., that means we need to check whether s[0, i-1] matches p[0, j-1]
    dp[i+1][j+1] = dp[i][j]
    
    2. the complicated way, if(p[j]==*), that means we need to check the wildcard
    the wildcard may take effective from 0 time to many times
    if the wild card plays 0 time, then it matches an empty string with the previous character.
    in this scenario, dp[i+1][j+1] = dp[i+1][j-1]
    
    if the wild card plays once, then dp[i+1][j+1] = dp[i][j-1] && (s[i]==p[j-1] || p[j-1] ==.)
    
    if the wild card plays many times, the dp[i+1][j+1] = dp[i][j+1] && (s[i]==p[j-1] || p[j-1] ==.)
    
    3. the other scenarios, the default value “false” will be populated for the rest.
    */
    

    其他文章

    1. 免费帮忙下载csdn和百度文库资料福利
    2. 学习笔记和学习资料汇总:前端 + 后端 + java + 大数据 + python + 100多实战项目 + C++
    3. 我的秋招经历总结:一站式秋招规划
    4. 零基础学爬虫
    5. 零基础C++学习总结

    欢迎关注个人公众号【菜鸟名企梦】,公众号专注:互联网求职面经javapython爬虫大数据等技术分享:
    公众号菜鸟名企梦后台发送“csdn”即可免费领取【csdn】和【百度文库】下载服务;

    公众号菜鸟名企梦后台发送“资料”:即可领取5T精品学习资料java面试考点java面经总结,以及几十个java、大数据项目,资料很全,你想找的几乎都有

    扫码关注,及时获取更多精彩内容。(博主985、A+学科硕士,今日头条大数据工程师)

    展开全文
  • LeetCode Top 100高频算法,即LeetCode上最高频的100道求职面试算法。小编和实验室同学之前面试找工作,也只刷了剑指offer和这top 100算法,在实际面试中也遇到了很多LeetCode上的原。剑指offer算法最优解...

    LeetCode Top 100高频算法题,即LeetCode上最高频的100道求职面试算法题。小编和实验室同学之前面试找工作,也只刷了剑指offer和这top 100算法题,在实际面试中也遇到了很多LeetCode上的原题。剑指offer算法最优解之前和大家分享了,LeetCode Top 100这100道算法题,每道题小编都刷了很多遍,并且总结了一种最适合面试时手撕算法的最优解法。后续每天和大家分享一道LeetCode top 100高频算法题,以及小编总结的最优解法。

    下面是第005是道算法题:

    0. 算法题顺序
    LeetCode Top 100 高频算法题系列的LeetCode算法题目就不帮大家翻译了,程序员应该需要能看懂。LeetCode算法题有一个技巧:先看每道题的example,大部分情况看完example就能理解题目意思;如果看完example还有疑惑,可以再回过头来看英文题目。这样也可以节省一点时间~

    1. 题目描述
    Given n non-negative integers a1, a2, …, an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of the line i is at (i, ai) and (i, 0). Find two lines, which, together with the x-axis forms a container, such that the container contains the most water.
    Notice that you may not slant the container.
    2. Examples
    1th example

    Input: height = [1,8,6,2,5,4,8,3,7]
    Output: 49
    Explanation: The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container can contain is 49.

    height中的数字对应着一个柱形图:横坐标是height数字的索引值 + 1;高度是height组数中的数字;求的是这些柱形图中最大矩形的面积

    2th example

    Input: height = [1,1]
    Output: 1

    3th example

    Input: height = [4,3,2,1,4]
    Output: 16

    4th example
    Input: height = [1,2,1]
    Output: 2

    3. Constraints(输入的数据约束)
    n = height.length
    2 <= n <= 3 * 104
    0 <= height[i] <= 3 * 104
    解析
    在LeetCode上本题属于Medium难度。这道题也是一道典型的动态规划类型题目,动态规划类型题目非常重要,这类题目也是面试中的常客!!
    本题是高频面试题!!!

    O(n)解法:

    我们从最大的宽度开始搜索即从left=0,right=height.length开始搜索;

    由于目前是最大的宽度,而left和right所确定的边界容器高度取决于高度较短的边界(能装多少水取决于短边)

    如果我们需要通过移动边界之一来增加容器的容量:由于移动边界会造成容器宽度减小,宽度减小可能会造成容量减小;只有当容器的有效高度增加时,才可能抵消掉由于边界减小造成的容器减小的那部分容量(只有短边增加才能增加容器的有效高度)。

    如何增加当前边界决定的容器有效高度?因为容器的有效高度是由较短的那条边决定的,此时移动较高的那条边,对容器的有效高度无影响,所以我们只能移动边界中较短的边界

    证明:假设最优解是高度为(a,b)的组合,那么当其中一个边界(假设为left)先到达最优解之一时(a),直到另外一个边界也到达另外一个最优解前,该边界不会再移动。现在证明:当left先到达最优边界高度a,在right到达另外一个最优边界前,left不会移动:

    如果在right到达最优边界之前,left移动了,即出现了right指向的高度比a大(因为移动时我们总是移动短边):此时right-a的宽度比b-a宽度更大(因为right出现在b之后,right>b),所以只需要比较高度,而容器有效高度分别为: min(right,a)=a 和min(a,b);

    前者为有效高度a,后者:若a>b,则为b, 此时前者有效高度和宽度均大于后者;若a<=b,,后者有效高度为a,与前者相同,但是前者的有效宽度更大,因此(a,right)是更优解,与假设不符。

    综上,我们每次移动高度小的边界,2个边界相遇之前一定会有最优解出现!

    下面是代码

    class Solution {
        public int maxArea(int[] height) {
          int left = 0;
          int right = height.length-1;
          int maxCap = 0;
          while(left<right){
              int cap = (right-left)*Math.min(height[left],height[right]);//(height[left]<=height[right]?height[left]:height[right]);
              if(cap>maxCap)
                  maxCap = cap;//移动边界
              if(height[left]<=height[right])
                  left++;
              else
                  right--;          
          }       
          return maxCap;
        }/*
         暴力解法:O(n^2)
        */
        /*public int maxArea(int[] height) {
            int maxCapacity = -1;
            for(int i=0;i<height.length-1;i++){
                for(int j=i+1;j<height.length;j++){
                    int cap = (j-i)*(height[i]<=height[j]?height[i]:height[j]);
                    if(cap>maxCapacity)
                        maxCapacity = cap;
                }
            }
            return maxCapacity;
        }*/
    }
    

    其他文章

    1. 免费帮忙下载csdn和百度文库资料福利
    2. 学习笔记和学习资料汇总:前端 + 后端 + java + 大数据 + python + 100多实战项目 + C++
    3. 我的秋招经历总结:一站式秋招规划
    4. 零基础学爬虫
    5. 零基础C++学习总结

    欢迎关注个人公众号【菜鸟名企梦】,公众号专注:互联网求职面经javapython爬虫大数据等技术分享:
    公众号菜鸟名企梦后台发送“csdn”即可免费领取【csdn】和【百度文库】下载服务;

    公众号菜鸟名企梦后台发送“资料”:即可领取5T精品学习资料java面试考点java面经总结,以及几十个java、大数据项目,资料很全,你想找的几乎都有

    扫码关注,及时获取更多精彩内容。(博主985、A+学科硕士,今日头条大数据工程师)

    展开全文
  • LeetCode TOP100(2)

    2020-02-18 07:56:00
    如果你时间比较紧迫,为了找工作而刷题,我建议你先刷热门推荐,一共100。先刷热 HOT 100,再刷精选 TOP 面试,之后刷其他的。接下来的一段时间,我会把做...
  • 这是leetcode top 100中的21、53第21,将两个有序的链表,拼接在一起。...public class top100_21_MergeTwoSortedLists { /** * Definition for singly-linked list. * public class ListNode { * ...
  • LeetCode-Top 100题

    2019-03-10 07:54:19
    Easy难度 771. Jewels and Stones 题目: 给出两个字符串A 和 B, 在B中找出在A中也出现过的字符 思路: 新建一个HashSet,先遍历A,把所有字符放到set里,再遍历B并判断字符是否在set中出现。 // 02.14 ...
  • LeetCode Top100之62,64

    2019-08-19 11:38:32
    写于2019年5月28日 62. 不同路径 ① 题目描述 一个机器人位于一个 m×nm×nm×n网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步...说明:m 和 n 的值均不超过 100。 示例 ...
  • LeetCode Top100之31,32

    2019-08-19 11:24:52
    下一个排列](https://leetcode.com/problems/next-permutation/) ① 题目描述 ② 一次遍历 [32. 最长有效括号](https://leetcode.com/problems/longest-valid-parentheses/) ① 题目描述 ② 暴力法(`Time Limit ...
  • LeetCode Top100之55,56

    2019-08-19 11:32:56
    如果采用45的第一种解法,那么在循环遍历的过程中,如果能跳的边界小于 下标i ,说明不能到达 下标i ,肯定不能跳到末尾,直接退出遍历! 直接改进45第一种解法的代码,代码如下: public boolean ...
  • LeetCode Top100之33,34

    2019-08-19 11:28:01
    在排序数组中查找元素的第一个和最后一个位置](https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/) ① 题目描述 ② 不追求`O(log n)`,线性扫描 ③ 二分查找 33. 搜索...
  • LeetCode Top100之17,19

    2019-08-19 11:37:30
    电话号码的字母组合](https://leetcode.com/problems/letter-combinations-of-a-phone-number/) ② 将组合问题(需要多层循环)转化为乘法——速度竟然异常的快。 ③ 使用递归 ④ 队列迭代 [19. 删除链表的倒数第N...
  • LeetCode Top100之11,15

    2019-08-19 11:28:14
    盛最多水的容器](https://leetcode.com/problems/container-with-most-water/) ① 题目描述 ② 暴力求解 ③ 双指针法 [15. 三数之和](https://leetcode.com/problems/3sum/) ① 题目描述 ② 使用暴力解法(Time ...
  • Leetcode Top100题目和答案(Java完整版 面试必备)

    万次阅读 多人点赞 2019-03-26 00:44:45
    最近忙着准备春招,复习完这个又复习那个。不过还是忙里偷闲,把剑指Offer这66道题目重新刷了一遍,收获还是很大的,下面贴出答案,又不懂的可以给我留言,博主会及时...以下摘自leetcode Top100精选题目 文章目录1....
  • 写于2019年6月10日(完成了top中所有的easy) 543. 二叉树的直径 ① 题目描述 中文描述:https://leetcode-cn.com/problems/diameter-of-binary-tree/ ② 二叉树求深度的变种 之前,求二叉树的深度是从根节点开始...
  • LeetCode面试常见100题TOP 100 Liked Questions)

    万次阅读 多人点赞 2018-07-16 11:25:22
    这篇文章是关于LeetCode Top 100 Liked Questions 的 专栏记录,其中部分题目可能包括解题思路和多种优化解法。 目录: 1、Two Sum 2、Add Two Numbers 3、Longest Substring Without Repeating Characters ...
  • 首先表达我对leetcode网站的感谢,与高校的OJ系统相比,leetcode上面的题目更贴近工作的需要,而且支持的语言广泛。对于一些比较困难的题目,可以从讨论区中学习别人的思路,这一点很方便。 经过一段时间的练习,我...
  • 旋转图像](https://leetcode.com/problems/rotate-image/) ① 题目描述 ② 非原地旋转 ③ 顺时针旋转90 [49. 字母异位词分组](https://leetcode.com/problems/group-anagrams/) ① 题目描述 ② 字母异位词的排序...
  • LeetCode Top100之1,2,3

    2019-08-19 11:36:17
    两数之和](https://leetcode.com/problems/two-sum/) ① 题目描述 ② 暴力求解 ③ 两次hashMap遍历 [2. 两数相加](https://leetcode.com/problems/add-two-numbers/) ① 题目描述 ② 情况分析 ③ 元素加法 [3. 无...
  • ④ 带重复数字的全排列——[leetcode的47](https://leetcode.com/problems/permutations-ii/) 39. 组合总和 ① 题目描述 给定一个 无重复元素 的数组 candidates 和一个目标数 target ,找出 ...
  • LeetCode Top100之4,5,10

    2019-08-19 12:43:42
    寻找两个有序数组的中位数](https://leetcode.com/problems/median-of-two-sorted-arrays/) ① 题目描述 ② 暴力解法 [5. 最长回文子串](https://leetcode.com/problems/longest-palindromic-substring/) ① 题目...
  • 写于2019年5月29日 文章目录 [70....此中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道。 示例: 输入: [2,0,2,1,1,0] 输出...
  • 最小覆盖子串](https://leetcode.com/problems/minimum-window-substring/) ① 题目描述 ② 暴力法(`Time Limit Exceeded`) ③ 滑动窗口(双指针) [78. 子集](https://leetcode.com/problems/subsets/) ① 题目...
  • 写于2019年6月4日 文章目录 [101. 对称二叉树]... 二叉树的层次遍历](https://leetcode.com/problems/binary-tree-level-order-traversal/) ① 题目描述 ② 迭代 ③ 递归 ④ [完全二叉树的判断]...
  • 有效的括号](https://leetcode.com/problems/valid-parentheses/) ① 题目描述 ② 使用堆栈(Stack) [21. 合并两个有序链表](https://leetcode.com/problems/merge-two-sorted-lists/) ① 题目描述 ② 借助新的链...
  • 中文题目:https://leetcode-cn.com/problems/linked-list-cycle-ii/ ② 使用HashMap 使用HashMap存储所有的非空结点,如果发现结点已经存在,便返回该结点。 代码如下,运行时间8ms: public ListNode ...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 282
精华内容 112
关键字:

leetcodetop100题