刷题
记录日常刷题心得。
董一刀
这个作者很懒,什么都没留下…
展开
-
leetcode21 合并两个有序链表——链表插入
涉及链表拆分和合并原创 2022-04-05 10:34:46 · 294 阅读 · 0 评论 -
leetcode 20 有效的括号——栈
leetcode 有效括号匹配,用栈解题。原创 2022-04-01 10:40:47 · 801 阅读 · 0 评论 -
leetcode16 最接近的三数之和——相向双指针
leetcode 16 最接近的三数之和。采用同向双指针解题,时间复杂度为O(N2)原创 2022-03-30 12:13:06 · 788 阅读 · 0 评论 -
二叉树遍历的几种方式
一. 依据完整中序创建二叉树先创建二叉树,才方便验证下面的遍历方法是否正确。思想就是采用队列先进先出的方式,每个节点离开队列的同时,将其左右子节点加入队列中,直至队列中无节点。直接给出代码:数据结构如下:public class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode(int val) { this.val = val; }}创建方法如下:输入格式原创 2021-03-09 11:50:00 · 371 阅读 · 2 评论 -
二分查找的三种形式
文章目录前言一、经典二分查找二、左边界二分查找三、右边界二分查找总结附录前言本文主要作为自己的学习记录,解题步骤并未详细说明,关键点在注释中给予了简要说明。如有疑问,欢迎留言讨论。一、经典二分查找题目描述:在不重复有序数组(升序)中寻找目标数并返回它的下标,若没找到返回-1。例子:[1, 2, 3],2;返回:1。见leetcode题(704):https://leetcode-cn.com/problems/binary-search/上代码: public int search(int原创 2021-02-07 21:42:52 · 499 阅读 · 1 评论 -
Rabin Karp算法寻找目标字符串在原字符串中的位置
文章目录前言一、使用rabin karp算法寻找目标字符串在原字符串中的位置。总结前言注:本文主要作为自己学习的记录,并没有详细介绍算法的每一步骤,如有问题欢迎讨论。要解决的问题如下例:在"abcde" 中寻找"bcd",则返回位置:1。一、使用rabin karp算法寻找目标字符串在原字符串中的位置。代码如下:在这里插入代码片public int targetIndex(String source, String target) { if (source == null || tar原创 2021-02-01 22:34:58 · 257 阅读 · 0 评论 -
最长回文子串的两种解法(未完待续)
文章目录前言一、双指针法二、动态规划总结前言leetcode上第5题:最长回文子串的两种解法:第一种采用双指针从中间向两边同时分开的方式;第二种采用动态规划的方式。(注:本文主要是自己的学习记录,并未对题目本身介绍的很详细)一、双指针法使用双指针法过程中遇见了两个问题:疏忽异常检测;忽略了指针最终指向位置并非回文子串实际位置。下面是代码: public String fun1(String s) { if (s == null || s == "")原创 2021-02-01 14:25:57 · 308 阅读 · 0 评论 -
堆排序-以小根堆为例
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、什么是堆二、堆排序过程1.创建堆2.堆排序总结前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言刷力扣题,遇到堆排序,考研完后就没接触数据结构,忘的差不多了,现在重现拾起来。一、什么是堆 堆,这个词很形象,谷堆、雪堆等,是一个底下宽上面细的金字塔。在数据结构中就是每一层的数都比上层的数大(或小),按层级排列。下面将以小根堆(就是下层比原创 2020-09-29 10:57:49 · 11733 阅读 · 0 评论