精华内容
下载资源
问答
  • leetcode试题详解Rico 的 Leetcode 汇编 作者:嘉若彤 描述 这是 2020 年 6 月 23 日的 Rico 的 Leetcode 问题解决方案的汇编。 他的一些老问题可以在这里看到:最重要的不是想出一个解决方案,而是知道如何以多种...
  • leetcode试题详解Python3 中的 DS&A 介绍 该存储库包含使开发人员能够使用 Python 解决 leetcode (LC) 问题所需的基本数据结构和算法。 我将不断更新这个 repo,详细解释用于解决问题的算法。 目的是做足够多的问题...
  • 试题 代码 算法题 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 面试题 () () () () 剑指Offer () () 自定义
  • leetcode试题详解C++ 大家好, 这是算法、数据结构和面试问题以及解决方案的集合。 这个存储库包含我对常见算法问题的解决方案和在 C++ 中数据结构的实现。 我创建了这个存储库来学习算法。 我已将所有算法分类为...
  • leetcode 试题书籍编码练习 这个 repo 包含在过去一年左右完成的大约 260 个编码问题的解决方案。 所有这些都得到了测试的支持。 大多数是在 Kotlin 中解决书中提出的问题。 问题来源 [LC] [紫外线A] [GG] [EP] 包括...
  • 如何使用idea插件刷LeetCode试题

    千次阅读 2020-07-13 20:02:18
    如何使用idea中的插件去刷LeetCode中的试题 步骤如下: 1.选中File点击Settings,选中Plugins,搜索LeetCode,去下载leetcode插件 2.下载完成后重启idea,右下角会有leetcode菜单, 配置 File->Settings->...

    如何使用idea中的插件去刷LeetCode中的试题

    步骤如下:

    1.选中File点击Settings,选中Plugins,搜索LeetCode,去下载leetcode插件
    在这里插入图片描述
    2.下载完成后重启idea,右下角会有leetcode菜单,
    在这里插入图片描述

    配置

    File->Settings->Tools->leetcode plugin
    配置过程中可以设置自己的解题模板,当然也可以使用自定义下的模板。
    在这里插入图片描述
    说明:
    Custom code template: 开启使用自定义模板,否则使用默认生成格式
    CodeFileName: 生成文件的名称,默认为题目标题
    CodeTemplate: 生成题目代码的内容,默认为题目描述和题目代码
    TemplateConstant: 模板常用变量
    ${question.title}:题目标题,例如:两数之和
    ${question.titleSlug}:题目标记,例如:two-sum
    ${question.frontendQuestionId}:题目编号,例如:1
    ${question.content}:题目描述内容
    ${question.code}:题目代码部分
    $!velocityTool.camelCaseName(str):一个函数,用来将字符串转化为驼峰样式

    注意

    在生成的自定义代码中包含两行关键信息:
    //leetcode submit region begin(Prohibit modification and deletion):提交到leetcode进行验证的代码开始标记
    //leetcode submit region end(Prohibit modification and deletion):提交到leetcode进行验证的代码结束标记
    这两行标记标示了提交到leetcode服务器进行验证的代码范围,在此范围内只允许有出现与题目解答相关的内容,出现其他内容可能导致leetcode验证不通过。
    除了此范围内,其他区域是可以任意填写的,内容不会提交到leetcode,可以增加一些可以本地调试的内容,例如:import java.util.Arrays;
    所以,这两行内容是不能被删除和修改的,否则将识别不到提交的内容。

    插件的使用

    鼠标右键出现以下界面,提交代码即可。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • LEETCODE试题 3. 无重复字符的最长子串 问题描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其...

    记录我的刷题历程

    LEETCODE试题 3. 无重复字符的最长子串

    问题描述

    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

    示例 1:

    输入: s = “abcabcbb”
    输出: 3
    解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。

    示例 2:

    输入: s = “bbbbb”
    输出: 1
    解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。

    示例 3:

    输入: s = “pwwkew”
    输出: 3
    解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
    请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters

    (错误)思路与大致想法

    刚开始的思路是,尽量以O(n)时间复杂度解决,遍历一遍,使用map存储不重复的字符
    1.当map重复时
    更新开始指针为重复值的位置,更新map中重复值的下标,更新结束指针为开始指针的下一个
    1-1.与上一次最大值比较
    如果当前值大于最大值则进行更新
    2.当map不重复
    map插入当前值和当前值的位置

    借鉴后的思路

    可以发现,题解与我的原有思路出入较大,但是本质上都是想利用递归来解决。
    1.遍历一遍,初始化开始下标,结束下标,最大值,map
    2.如果结束指针对应的字符与map中的字符重复,则更新开始下标的位置为:当前开始下标与map中重复字符位置的最大值(保证开始下标不左移)
    3.是否重复都需要保存最大值,保证map中的字符位置是重复字符的下一位

    借鉴后的疑问

    1.为什么重复后需要更新的开始指针是map中重复指针的下一位而不是当前end+1,
    提问原因:因为end+1就是当前重复的下一位了
    实际原因:map.get(),取的是之前重复的字符的下一位,也就是前一个不重复区间新起始位,而不是当前重复指针的下一位,对map.get()存储的值的含义还不够充分理解
    2.为什么需要比较当前start与重复指针下一位的位置大小
    如果使用end+1作为每一次start,那么就不需要判断最大值,因为end在递增,每次取的开始值肯定比map中的要大
    实际原因:与上一问题一样,取的是前区间的下一位,作为新区间的起始位,需要比较当前区间的起始与前区间的起始大小,来保证区间不会左移,例如abba,当遇到第二个a时,start=1,end还在3,取得最大值为3,显然不是我们所需要的结果,因为map.get()不一定会比start大,当字符串中出现连续多个重复字符时,start会增加,而map.get的位置不是固定的

    正确代码

        public int lengthOfLongestSubstring(String s) {
            if(s.isEmpty()) return 0;
            int max=0;
            int start=0;
            int end=0;
            Map<Character,Integer> map=new HashMap<>();
            int length=s.length();
            while(end<length){
                char c=s.charAt(end);
                if(null!=map.get(c)){
                    //保证start不左移
                  start=Math.max(map.get(c),start);
                }
                max=Math.max(end-start+1,max);
                map.put(c,end+1);
                end++;
            }
            return max;
        }
    
    

    成功截图在这里插入图片描述

    思考

    1.采用记录重复值下一位的方式,可以保证map中记录的是不重复值的区间
    2.采用start=Math.max(map.get©,start);的方式更新开始指针,可以规避原始思路中可能会遗漏的一些不重复字符,导致问题解答错误,保证每次开始之前记录的最大值为无重复子串的长度。取当前start与上一不重复子串的后一位作对比,可以保证start不会左移,一直处于递增状态

    借鉴来源

    https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/solution/hua-jie-suan-fa-3-wu-zhong-fu-zi-fu-de-zui-chang-z/

    更多

    第一次写博客,思路也许不太清晰,仅作为个人记录学习使用,如果各位大佬们有意见和建议也可以在评论区加以指导。一起进步一起学习

    展开全文
  • 问题描述: 颠倒整数 给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123 输出: 321 ...假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。...代...

    问题描述:

    颠倒整数

    给定一个 32 位有符号整数,将整数中的数字进行反转。

    示例 1:

    输入: 123
    输出: 321
    

     示例 2:

    输入: -123
    输出: -321
    

    示例 3:

    输入: 120
    输出: 21
    

    注意:

    假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

    代码:

    class Solution2 {
        public int reverse(int x) {
            int y=0;
            while(x!=0) {
                int temp=y;
                //颠倒整数
                y=y*10+x%10;
                x/=10;
                //检查是否溢出
                if(temp != (y-x%10)/10) {
                    return 0;
                }
                
            }
            return y;
        }
    }

     

    展开全文
  • 一、试题描述 给定一个链表,判断链表中是否有环,如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。如果链表中存在环,则返回 true 。 否则,返回 false 。 示例: ` 输入:head = [3,2...

    一、试题描述

    给定一个链表,判断链表中是否有环,如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。如果链表中存在环,则返回 true 。 否则,返回 false 。
    示例:
    `

    输入:head = [3,2,0,-4], pos = 1
    输出:true
    解释:链表中有一个环,其尾部连接到第二个节点。
    

    二、解题思路

    1.哈希表

    遍历所有节点,将不存在于集合的节点放入集合中,若遍历过程中出现了集合中的节点,则存在环,return True;若走到底仍然没有环,则return False
    代码如下:

    class Solution:
        def hasCycle(self, head: ListNode) -> bool:
            seen=set()             #集合取名
            while head:            #指针不为空
                if head in seen:   #若指针在集合中
                    return True 
                seen.add(head)     #指针添加到集合中
                head=head.next     #指针迭代
            return False           #循环完后,由于未返回True,证明没有环,则返回Fales
    

    2.快慢指针

    定义两个指针,一个速度为1,一个速度为2,若存在环,两指针一定会相遇,若不存在环,则不会相遇
    代码如下:

    class Solution:
        def hasCycle(self, head: ListNode) -> bool:
            fast=head #快指针
            slow=head #慢指针
            while fast and fast.next:  #快指针一次移动2,因此要判断fast和fat.next,否则会导致溢出
                fast=fast.next.next    # 快指针移动2
                slow=slow.next         #慢指针移动1
                if fast==slow:         #快慢指针相遇
                    return True        #返回True
            return False               # 循环结束,未返回True,证明没有环,返回Fales
    
    展开全文
  • 链表排序问题(leetcode试题)题目描述:Sort a linked list in O(n log n) time using constant space complexity. Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和...
  • leetcode试题之二进制加法--java实现

    千次阅读 2016-11-19 19:55:12
    /* 本题的需求是:给出两个字符串,内容是二进制数字,编写计算两个二进制数字和的程序。 难点是考虑周到,尤其是最后的一个进位,容易遗忘。 */ import java.util.ArrayList;...class AddBinary{ ...
  • 题目描述如下:    通过分析题目逻辑,罗马数字使用Map存储,调用String的CharAt方法提取字符串中的特定位置字符。 map.get(Object key):获取给定key对应的值; char CharAt(int index):取字符串中存放...
  • //求一个矩阵中从左上角到右下角的路线条数 //使用dp的方法 import java.util.*; public class Uniquepath{ public static void main(String[] args) { Uniquepath uniquepath = new Uniquepath();...
  • /** * * * Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For example, Given n = 3, there are a total of 5 unique BST's. 1
  • LeetCode试题之判断是否是平衡二叉树

    千次阅读 2016-11-20 11:25:05
    /** * 本题题意:判断一棵树是否是平衡二叉树,平衡二叉树的左右子树的高度相差不会超过1 * * 解题思路:其实还是获取左右子树的高度 如果差别查过1,那么就返回false * * 错误想法:只要获取左子树高度和右...
  • LeetCode试题分类

    2014-04-06 12:40:55
    与Tree相关的题目:
  • leetcode 分类 LeetCode常考题目 实现语言: Java 文件分类: 根据题目中的数据结构 或者算法思想进行分类 文件命名: 根据题目的方法名进行命名,便于查找 文件内容: 包含题目和解题思路,以及解题代码
  • LeetCode试题——1. 两数之和 Two Sum

    千次阅读 2018-03-04 15:55:46
    两数之和-点击查看题目要求方法一、蛮力法class Solution { public int[] twoSum(int[] nums, int target) { for(int i=0;i&lt;nums.length;i++){ for(int j=i+1;j&lt;nums.length;... if(nu...
  • leetcode试题总结<6>

    2016-08-22 18:21:14
    试题大意:这道题让我们实现一个迷你解析器用来把一个字符串解析成NestInteger类。 ;">/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or ...
  • leetcode试题总结<8>

    2016-08-27 17:01:24
    257. Binary Tree Paths 题意:给定一个二叉树,返回其从根到叶子节点的每一条路径 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;... * TreeNode *right;...
  • leetcode试题总结<7>

    2016-08-23 17:22:44
    144. Binary Tree Preorder Traversal 题意:实现二叉树的前序遍历 //iterate 1 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;... * Tre
  • leetcode 试题总结<5>

    2016-08-20 17:28:18
    本篇开始说明栈和队列的题目 232. Implement Queue using Stacks //功能:使用栈结构执行队列结构的操作 //注意:只能使用栈结构的标准操作:即push、pop、peek、size、empty。class Queue { ...
  • Given a positive integer a, find the smallest positive integer b whose multiplication of each digit equals to a. If there is no answer or the answer is not fit in 32-bit signed integer, then return 0
  • Leetcode部分试题解析

    2016-11-25 10:41:43
    收藏了Leetcode基本试题64道,每到题目都用python编写,对python感兴趣的可以下载学习
  • LeetCode 成为快速复习算法题目的有力武器,但是 LeetCode 日益增加的题库,短时间内不可能刷完,如何有效的刷题呢?常见的题目有哪些?通过 LeetCode 上面的题目,我们是否能够总结出一类题目的解决方法,从而达到...
  • 听从老姐的建议,开始在LeetCode上刷题,争取每周能保质保量的完成2到3道题,针对有技巧的题目,我会以博客的形式将其中的原理以及各种算法都展现出来。所有题目请参考我的GitHub:GitHub地址 **题目要求:*...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,129
精华内容 851
关键字:

leetcode试题