Leetcode
飞翔的胖迪
一个爱读林清玄和东野圭吾的女子!
展开
-
LeetCode---二叉树(1)层序遍历
新手模板永远的神!这一部分的前后序迭代法很久之前写过,emmmm。LeetCode二叉树前后序遍历(栈实现迭代法)这一章节主要是层序遍历,就是一套模板,然后好几个题可以通用!记载一下。问题描述代码如下import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')impor原创 2022-05-17 14:55:36 · 424 阅读 · 0 评论 -
LeetCode--栈与队列--232,225,20,1047,150,239,347
前言先对栈和队列有个再次熟悉的过程,掌握栈与队列的操作方法。其次就是双向队列,优先队列的使用。问题分析232题与225题是栈与队列的互相实现,主要是学习这两个涉及的操作方法。示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimpo原创 2022-05-13 16:13:34 · 119 阅读 · 0 评论 -
Leetcode--哈希表(2)--349,350,202,1,454,15,18
我都准备开始双指针那一节了,才发现双指针里面的内容大多还是前面以及后面章节的内容,比如链表里面的,有些已经做过了,但仔细一看,还存在哈希表的内容,就发觉我忘了一部分,,,哈希表那一节的题,不过剩下的哈希表的题也不是很难,理解了之后,还算简单,虽然看起来挺多的。349两个数组交集题目太多,直接分析之后贴代码。在这总结的时候我想起来一件事,就是怎么去除重复的,一时间忘记了当时的想法,刚刚去查了一下,set是复用的hashmap的contains()方法,hashmap是不允许有重复的key值出现的,所以原创 2022-05-11 10:50:16 · 129 阅读 · 0 评论 -
LeetCode--字符串(1)--344,541,剑指offer05,151
前言到字符串部分了,主要用的就是双指针,我看了一下后面的part,字符串后面还有一个主要的双指针part。一分耕耘一分收获。没有结果的日子都在努力扎根!问题描述字符串的这几部分都比较简单,中等难度的题也被我找到了好理解的方法去做,争取早点刷够题!从理解程度上来说,这几个代码都比较好理解,没有陌生的内置方法。代码分析344题:class Solution { public void reverseString(char[] s) { int left = 0;原创 2022-05-05 21:23:31 · 104 阅读 · 0 评论 -
LeetCode--哈希表--242,383,49,438
问题分析我以为我的链表那一章还能有个第二节,做到后面发现跟我前面发的几个什么反转链表一样,就没有继续做了。就往下做了哈希表这部分,哈希表的话,做完之后我觉得跟前面的滑动窗口还有点关系,那里面存储也用的哈希表:key-value。这里主要是涉及到242,383,49,438题,难点的题就是49,这个真是一个medium做一天。后面分析。思路分析遇到某个元素是否在数组中出现就用哈希法。我理解的是一个字符出现次数需要计数的时候,哈希法就用到了。第一题第二题只要知道这个字符串转化为字符数组的方法就原创 2022-05-05 10:06:33 · 153 阅读 · 0 评论 -
Leetcode---链表(1)
问题分析主要是学习了关于单链表的增删改查操作还有链表节点交换、倒数删除。思路分析第一道题单链表还好办,双链表在第一题没敢碰,正好昨晚上熬夜了,正是困得时候,也就只写了单链表。第二题是相邻互换,一定要画图!!!画完图就知道怎么变换了,总体分三步(我链表里面基本都用的虚拟头结点方法):1:虚拟头—>22: 2—>13: 1—>3我发现很多链表题都需要有个不动的点来连接过去操作过的节点:比如此处的3,在1和2交换的时候,没有3的事,但后面你还要跟3这个节点连接,就可以写个t原创 2022-05-03 21:52:02 · 286 阅读 · 0 评论 -
LeetCode---数组-快慢指针-移除27/26/283/844
前言关键代码同类型的,快慢指针代表两个不同的索引。public int removeElement(int[] nums, int val) { int fast = 0, low = 0; while(fast < nums.length){ if(nums[fast] != val) { nums[low] = nums[fast]; low++;原创 2022-04-26 21:07:24 · 77 阅读 · 0 评论 -
LeetCode---数组-二分查找-35、69、367
前言、问题描述主要是接昨天刷的704的二分查找,我发现easy和medium之间有壁,简单的还能动动小脑袋,中等的我就死翘了。示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。思路分析367.给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。左闭右闭,二分法的初级版关键代码。关键代码public int serchInsert(i原创 2022-04-26 20:53:45 · 69 阅读 · 0 评论 -
LeetCode----数组-704 二分查找
问题描述思路分析我看那个博主用的“左闭右闭”还有“左闭右开”,我就选了“左闭右闭”,都挺好理解的。二分查找有两个条件满足才可以用:有序且不重复。代码如下:class Solution { public int search(int[] nums, int target) { if(target < nums[0] || target > nums[nums.length - 1]) return -1;//节省时间 int left = 0.原创 2022-04-25 20:44:16 · 43 阅读 · 0 评论 -
LeetCode----二叉树之N叉树的前序后序遍历
问题描述刷了两道简单题的N叉树前序和后序遍历,用的递归,我看题解有人用dfs,还没有学到那个地方,反正就怎么简单解决,就怎么来了。思路分析没有啥好分析的,递归,简单粗暴,实在好用,但是敲代码的时候遇到了一些问题,比如LeetCode给了Node类的定义。本人习惯性不看,又是个菜鸡新手,很多变量啥的都调用不起来。for循环里面的就需要用到,我还自己瞎命名,一直出错。class Node { public int val; public List<Node> childre原创 2022-04-25 20:38:27 · 368 阅读 · 0 评论 -
LeetCode---二叉树前中后序遍历
前言之前几篇文章都是按照一个同学给的Word敲的,顺序也是链表开始,我敲的都是简单题。今天发现了一个博主,打算按照他的顺序来,再加上他有相应的解释。所以今天更一下学到的二叉树模板和学的第一个数组代码。问题二叉树的前序、中序、后序遍历。思路分析LeetCode上说递归比较简单(虽然我还没有敲过递归的答案),就先学习了迭代的模板。说解释,我看了视频解释也不是很懂,但是记住了关键的几行代码。代码如下://前序遍历---根左右class Solution { public List<原创 2022-04-25 20:29:15 · 538 阅读 · 0 评论 -
LeetCode--160 相交链表
问题描述思路分析总的来说,看了题解之后:A的过程:蓝+黄+红;B的过程:红+黄+蓝;;所以二者相交的话,肯定会在相交处汇合。public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if(headA == null || headB == null) return null; ListNode p1 = headA; .原创 2022-04-20 21:08:16 · 316 阅读 · 0 评论 -
Leetcode--234回文链表
问题描述思路分析一开始我想的是前几天刚做完反转链表,将链表反转然后在进行比较;代码如下,遇到[1,2]的测试死了,我也没搞清楚哪里不对;class Solution { public boolean isPalindrome(ListNode head) { if(head.next == null) return true; ListNode node = head; ListNode node2 = reverse.原创 2022-04-15 20:28:38 · 300 阅读 · 0 评论 -
Leetcode--141环形链表
Leetcode --141环形链表问题描述思路分析问题描述思路分析环形链表,这个题我一开始也不知道怎么做,然后开始看题解,无语了哈哈哈哈对我自己。最常用的是快慢指针,所以定义low和fast,初始化为head,因为两指针一开始都指向头节点,第一个嘛;开始考虑存在没有链表输入和只有一个节点的链表的情况,所以先来个判断0和1的判断,简单粗暴;之后,fast和如果fast不是null且fast的下一个节点也存在,我们就可以继续进行指针移动了,因为fast存在代表存在节点,fast.next代表fast原创 2022-04-14 20:12:04 · 198 阅读 · 0 评论 -
Leetcode-206题反转链表
Leetcode原创 2022-04-12 20:22:08 · 395 阅读 · 0 评论