栈与队列算法学习
栈 用栈实现队列 问题:用栈实现队列,请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty) 这题是一道简单的模拟题,考察栈的常用方法,很适合对栈有一个初步的理解。由于栈的特性,只用一个栈是无法实现队列的,我们构造一个输入栈一个输出栈。 代码示例: class MyQueue { Stack<Integer> ...
栈 用栈实现队列 问题:用栈实现队列,请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty) 这题是一道简单的模拟题,考察栈的常用方法,很适合对栈有一个初步的理解。由于栈的特性,只用一个栈是无法实现队列的,我们构造一个输入栈一个输出栈。 代码示例: class MyQueue { Stack<Integer> ...
字符串的操作主要涉及到String,char[],StringBuilder,StringBuffer四种,值得注意的是,Java中String是无法被修改的,所以做题的时候往往涉及到这几种类型的转换,需要熟悉不同类型的操作方法。 字符串操作常用方法: toCharArray(String):可以将String类转换为char数组。 String(char[], left, ri...
什么是哈希表?可以是数组,可以是HashSet,可以是HashMap,我做哈希表这类题时更多的是不知道怎么灵活使用哈希表提供的方法,希望通过这个专题的学习能够有所进步。 HashMap常用方法: put(key,value),我们经常用存储一些常用的数据,比如flag、百分比之类的,我们就可以返回map结构,如果key相同则值会覆盖,允许key和value为null。 get(k...
链表基础 移除链表 问题:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。 这个问题很简单,不需要过多进行说明,但在解题的过程中会碰到各种各样隐形的问题,比如NullPointerException、要考虑头结点需要删除时的情况等等,对于头结点的特殊处理,可以采用添加虚拟节点再进行统一处理,也可以不添加虚拟节点特殊...
二分查找 二分查找 问题: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 该题问题在于边界的处理,到底是 while(left < right) 还是 while(left <= right),到底是right = middle呢,还是要right =...
2024.05.21 关于GBC 四月新番里尤其喜欢GBC,整个四月坚持看到现在的只有GBC和素晴第三季,由于是原创所以格外担心其烂尾,也因此没少看其他路人的讨论。每每看到自己中意的作品因为一些自己觉得无足轻重的原因被贬得一文不值的时候,都想和这些人辩个高下,但由于我曾立下过“再也不在网络上和人辩经”的flag,我没有过多参与其中,只能自行消化这份不满情绪。 食堂打包回到宿舍边吃边看了一遍最...