美文网首页
leetcode刷题记录(持续更新)

leetcode刷题记录(持续更新)

作者: Windy_xf | 来源:发表于2020-04-07 18:23 被阅读0次

刷题并记录。

1 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。(简单)

方法一:

复杂度为o(n^2),直观反映是这么写,下面是优化的其他方法

方法二:用字典,复杂度降为O(n)


方法三:单循环 


2 链表求和

解决方法

方法一:最最基础的方法,关键点是链表的操作。也就是红色框路面,


3 无重复字符最长字串长度:

方法一:暴力

方法二:滑动窗口

滑动窗口是数组/字符串问题中常用的抽象概念。 窗口通常是在数组/字符串中由开始和结束索引定义的一系列元素的集合,即 [i,j)(左闭,右开)。而滑动窗口是可以将两个边界向某一方向“滑动”的窗口。使用 Hash表将字符存储在当前窗口 [i,j)(最初 j=i)中。 然后我们向右侧滑动索引 j,如果它不在 Hash表中,我们会继续滑动 j。直到 s[j] 已经存在于 Hash表中。此时,我们找到的没有重复字符的最长子字符串将会以索引 i开头。那么为什么叫做滑动窗口呢?大家可以看到,上面的暴力法,我们做了很多无用的计算,在区间[i,j)中,假如我们判断是存在重复字符,那么以i开头,并且结尾大于j的所有区间都是存在重复字符的。举个例子,在【0,5)这个区间是存在重复字符的,那么在【0,6),【0,7)...一直到末尾的所有区间都会是存在重复字符的。这个时候我们就没必要进行判断了,可以直接进行i+1的操作,所以大家会发现,每次操作要么j+1,要么i+1,整个区间就像是在滑动一样,所以就要滑动窗口.

相关文章

  • leetcode刷题(持续更新)

    从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = ...

  • leetcode刷题记录(持续更新)

    刷题并记录。 1 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,...

  • leetcode 刷题之路

    作者按:以此记录leetcode刷题之路。python语言。题号是按作者自己刷题的个数累加的。与leetcode中...

  • LeetCode12.23

    近一年左右没更新,开始刷LeetCode的Python3的题,坚持每天刷一点。我是刷LeetCode国外版本的题(...

  • leetcode持续刷题

    选择性刷一点经典题。会持续更新。 1.全排列46. Permutations 思路:使用回溯法经典框架。 代码如下...

  • LeetCode刷题笔记

    (Since 2020.10.14-2021.3.10) LeetCode刷题笔记,共两百多题,记录整理如下: 动...

  • 程序猿刷题网站你知道吗?

    Coderbyte 刷题网LeetCode 刷题网Stack Overflow 刷题网

  • LeetCode刷题

    LeetCode刷题

  • 链表

    今天开始抽空刷一些leetcode里数据结构的题,在这里记录下来。按难易程度开始刷吧。 第一次更新:2018.10...

  • LeetCode刷题记录(持续更新中14/2073)

    LeetCode[https://leetcode.com]是一个刷算法题的网站,这里用的是python3,做一下...

网友评论

      本文标题:leetcode刷题记录(持续更新)

      本文链接:https://www.haomeiwen.com/subject/kyeuphtx.html