Kurisu

贪心算法学习

贪心算法并没有固定的套路。所以唯一的难点就是如何通过局部最优,推出整体最优。体感就是贪心算法挺看感觉的,十分取巧,多做多练才能在遇到难题的时候想到比较好的策略,此外大多数贪心的题目往往可以通过动态规划来解决,动态规划还是作为重点内容,贪心算法就不把遇到的所有题目都记录下来了。 摆动序列 问题:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可...

回溯算法学习

之前已经在二叉树的部分接触到了回溯算法,实际上回溯法解决的问题都可以抽象为树形结构,因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度就构成了树的深度,递归就要有终止条件,所以必然是一棵高度有限的树。 回溯三部曲: 回溯函数模板返回值以及参数:回溯算法中函数返回值一般为void,但回溯算法需要的参数可不像二叉树递归的时候那么容易一次性确定下来,所以一般是...

二叉树算法学习

二叉树遍历 递归遍历 这是所有二叉树递归的题目离不开的基础,不同的遍历顺序决定了递归逻辑的顺序。 递归算法的三个要素: 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。 确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条...

栈与队列算法学习

栈 用栈实现队列 问题:用栈实现队列,请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty) 这题是一道简单的模拟题,考察栈的常用方法,很适合对栈有一个初步的理解。由于栈的特性,只用一个栈是无法实现队列的,我们构造一个输入栈一个输出栈。 代码示例: class MyQueue { Stack<Integer> ...

链表算法学习

链表基础 移除链表 问题:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。 这个问题很简单,不需要过多进行说明,但在解题的过程中会碰到各种各样隐形的问题,比如NullPointerException、要考虑头结点需要删除时的情况等等,对于头结点的特殊处理,可以采用添加虚拟节点再进行统一处理,也可以不添加虚拟节点特殊...

小记

2024.05.21 关于GBC 四月新番里尤其喜欢GBC,整个四月坚持看到现在的只有GBC和素晴第三季,由于是原创所以格外担心其烂尾,也因此没少看其他路人的讨论。每每看到自己中意的作品因为一些自己觉得无足轻重的原因被贬得一文不值的时候,都想和这些人辩个高下,但由于我曾立下过“再也不在网络上和人辩经”的flag,我没有过多参与其中,只能自行消化这份不满情绪。 食堂打包回到宿舍边吃边看了一遍最...

Trending Tags