题干 : 返回二叉树层序遍历的结果 同时写出递归和非递归的写法

至于什么是层序遍历不用我赘述 其实就是用BFS的方法去搜索二叉树
同样 包含递归和非递归的写法 非递归写法需要用队列来实现

Read more »

题干: 返回二叉树的前中后序结果 同时写出递归和非递归的写法

递归的写法还是很好想的 简单而且容易理解
但是用栈来实现二叉树的非递归遍历写法就不是那么好理解
特别是中序遍历

Read more »

栈的运用中经典中的经典 不过算法竞赛不会考这些导致当时就没用心去搞懂
题干
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
1.左括号必须用相同类型的右括号闭合。
2.左括号必须以正确的顺序闭合。
3.每个右括号都有一个对应的相同类型的左括号。

不匹配的情况只有三种 搞懂就是很简单的题目!!

Read more »

虽然python c++中都会有字符串查找的库函数 在刷题的过程中遇到了查找子串的问题 通常直接调用函数就可以解决 但是KMP作为十分重要的算法 很大概率会在面试中手撕 虽然依然要掌握

题干:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

Read more »

题干:给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

也是很经典的滑动窗口寻找子序列的问题,重点依然是双指针
Read more »

题意:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序

暴力解法是把数组的每个元素取平方后,用各种排序算法来排序 时间复杂度为O(nlogn) 双指针可以直接把时间复杂度降到O(n)

Read more »

最简单暴力的移除元素就是套两层for循环 让后面的元素不断去覆盖前元素实现数组的删除

这个O(n*n)的方法大部分都是会卡掉的 我们同时也知道 双指针通常是可以优化类似的数组问题

因此我们这里就介绍一下移除数组的双指针做法

Read more »

二分作为大一就没有搞懂的硬骨头,模糊的主要原因是区分不了二分查找二分答案

而且网上的二分答案模板实在是太多太多了 自己刷的题目数量也没跟上,导致模板总是忘

借着这个博客,彻底搞懂二分!!😡

Read more »

题: 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。

环形链表

Read more »
0%