随笔- 57
文章- 0
评论- 2
阅读-
2957
合集-代码随想录
代码随想录Day6
摘要:链表的复习章节 哈希的概念和应用:https://programmercarl.com/哈希表理论基础.html#哈希函数 当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。 数组 set (集合) map(映射) 这里数组就没啥可说的了,我们来看一下set。 Leetcode 2
阅读全文
代码随想录Day7|哈希表part02
摘要:今日任务 ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和 ● 总结 详细布置 454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体会一下 哈希法 如何提高程序执行效率,降低时间复杂度,当然使用哈希法 会提高空间复杂度,但一般来说我们都是舍
阅读全文
代码随想录Day8|字符串
摘要:主要是学了java的字符串用法,题目不是很难 使用 StringBuilder 类型可以节省时间,关于这个类型的添加和使用 char temp = sb.charAt(start); sb.setCharAt(start, sb.charAt(end)); sb.setCharAt(end, tem
阅读全文
代码随想录Day9|
摘要:28. 实现 strStr() 在一个串中查找是否出现过另一个串,这是KMP的看家本领 说到KMP,先说一下KMP这个名字是怎么来的,为什么叫做KMP呢。 因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP KMP主要应用在字符串匹配上。 K
阅读全文
代码随想录Day10|栈与队列
摘要:那么我这里再列出四个关于栈的问题,大家可以思考一下。以下是以C++为例,使用其他编程语言的同学也对应思考一下,自己使用的编程语言里栈和队列是什么样的。 C++中stack 是容器么? 我们使用的stack是属于哪个版本的STL? 我们使用的STL中stack是如何实现的? stack 提供迭代器来遍
阅读全文
代码随想录Day11|栈和队列
摘要:20. 有效的括号 经典的利用栈的题目 这里选择用java来写,注意我们的java中的泛型不能用基本数据类型,而是应该使用包装类 注意!java一定是定义后需要声明,然后才能使用 1047. 删除字符串中的所有相邻重复项 略 比较简单 150. 逆波兰表达式求值 注意:leetcode 内置jdk的
阅读全文
代码随想录12|栈和队列
摘要:239. 滑动窗口最大值 这是使用单调队列的经典题目。 此时我们需要一个队列,这个队列呢,放进去窗口里的元素,然后随着窗口的移动,队列也一进一出,每次移动之后,队列告诉我们里面的最大值是什么。 每次窗口移动的时候,调用que.pop(滑动窗口中移除元素的数值),que.push(滑动窗口添加元素的数
阅读全文
代码随想录Day14|二叉树
摘要:基本理论 https://programmercarl.com/二叉树理论基础.html#二叉树的种类 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 完全二叉树:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并
阅读全文
代码随想录Day15|二叉树
摘要:二叉树层序遍历登场 层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。 果然看java还是很不爽,C++和python的代码简洁明了 public List<List<Integer>> resList = new ArrayList<List<Integer>>(); //DFS--
阅读全文
代码随想录Day15|二叉树III
摘要:104.二叉树的最大深度 递归法 本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始) 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数
阅读全文
代码随想录算法训练营14期 Day1
摘要:数组理论基础 原文:https://github.com/youngyangyang04/leetcode-master/blob/master/problems/数组理论基础.md 704. 二分查找 解析链接:https://programmercarl.com/0704.二分查找.html#_
阅读全文
代码随想录训练营day2| leetcode977, 209,59
摘要:leetcode 977 题目:https://leetcode.com/problems/squares-of-a-sorted-array/description/ 解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%
阅读全文
代码随想录day16| 二叉树(四)
摘要:110.平衡二叉树 递归法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeN
阅读全文
代码随想录Day17|二叉树(五)
摘要:今日任务 513.找树左下角的值 112. 路径总和 113.路径总和ii 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树 100.相同的树 572.另一个树的子树 513.找树左下角的值 层序遍历 /** * Definition for a binary tree
阅读全文
代码随想录Day19|二叉树(六)
摘要:今日任务 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树 654.最大二叉树 当不确定一个新的解决方案是否正确的时候 请优先使用暴力解的方式 /** * Definition for a binary tree node. * public class Tr
阅读全文
代码随想录|二叉树(最后一章)
摘要:530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 总结篇 53
阅读全文
代码随想录|二叉树总结
摘要:涉及到二叉树的构造,无论普通二叉树还是二叉搜索树一定前序,都是先构造中节点。 求普通二叉树的属性,一般是后序,一般要通过递归函数的返回值做计算。 求二叉搜索树的属性,一定是中序了,要不白瞎了有序性了。
阅读全文
代码随想录Day23|回溯算法
摘要:今日任务: 77. 组合 216.组合总和III 17.电话号码的字母组合 什么是回溯法 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 在二叉树系列中,我们已经不止一次,提到了回溯,例如二叉树:以为使用了递归,其实还隐藏着回溯 (opens new window)。 回溯是递归的副产品,只要有递
阅读全文
代码随想录Day24|回溯算法+JAVA大作战
摘要:今日任务 39. 组合总和 40.组合总和II 131.分割回文串 93.复原IP地址 78.子集 90.子集II 39. 组合总和 class Solution { List<List<Integer>> ans = new ArrayList<>(); LinkedList<Integer> n
阅读全文
代码随想录|回溯算法(终回)
摘要:* 491.递增子序列 * 46.全排列 * 47.全排列 II 332.重新安排行程 51. N皇后 37. 解数独 总结 491.递增子序列 注意使用set来判断这一层是否有用过相同的数字,因为这题的数不是order的,所以不能和前者相对比 在python中的set使用add来增加 class
阅读全文