数据结构
Java基础数据结构
Dejavuuuuuu
不是在WA,就是在WA的路上
展开
-
牛客 AB13 【模板】拓扑排序 Java
给定一个包含�n个点�m条边的有向无环图,求出该图的拓扑序。若图的拓扑序不唯一,输出任意合法的拓扑序即可。若该图不能拓扑排序,输出−1−1。接下来的�m行,每行输入两个整数��,��ui,vi (1≤�,�≤�1≤u,v≤n),表示��ui到��vi之间有一条有向边。第一行输入两个整数�,�n,m ( 1≤�,�≤2⋅1051≤n,m≤2⋅105),表示点的个数和边的条数。若图存在拓扑序,输出一行�n个整数,表示拓扑序。原创 2023-07-30 10:02:02 · 148 阅读 · 0 评论 -
牛客 AB12 删除链表的节点 JAVA
3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点。给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 2 -> 1 -> 9。给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 2 -> 5 -> 9。给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。0原创 2023-07-26 08:58:20 · 33 阅读 · 0 评论 -
牛客 AB11 合并两个排序的链表
数据范围: 0≤�≤10000≤n≤1000,−1000≤节点值≤1000−1000≤节点值≤1000。输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。要求:空间复杂度 �(1)O(1),时间复杂度 �(�)O(n)原创 2023-07-25 09:32:46 · 33 阅读 · 0 评论 -
牛客 AB10 反转链表 JAVA
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。要求:空间复杂度 �(1)O(1) ,时间复杂度 �(�)O(n)。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。数据范围: 0≤�≤10000≤n≤1000。如当输入链表{1,2,3}时,原创 2023-07-24 09:51:20 · 100 阅读 · 0 评论 -
牛客 AB9 【模板】链表 JAVA
insert x y:将�y加入链表,插入在第一个值为�x的结点之前。若链表中不存在值为�x的结点,则插入在链表末尾。保证�x,�y为int型整数。delete x:删除链表中第一个值为�x的结点。若不存在值为�x的结点,则不删除。输出一行,将链表中所有结点的值按顺序输出。若链表为空,输出"NULL"(不含引号)。接下来的�n行,每行一个字符串,表示一个操作。保证操作是题目描述中的一种。第一行输入一个整数�n (1≤�≤1041≤n≤104),表示操作次数。原创 2023-07-23 10:14:34 · 67 阅读 · 0 评论 -
牛客 AB8 【模板】循环队列 JAVA
push x:将�x加入到循环队列尾端。若循环队列已满,输出"full"(不含引号),否则不输出任何内容。第一行输入两个整数�,�n,q (1≤�,�≤1051≤n,q≤105),表示循环队列可利用的空间大小和操作次数。front:输出队首元素,队首不出队。若队列为空,输出"empty"(不含引号)。请你实现一个循环队列,该循环队列可利用的空间大小等于�n个int型变量的大小。pop:输出队首元素,且队首出队。若队列为空,输出"empty"(不含引号)。接下来的�q行,每行一个字符串,表示一个操作。原创 2023-07-20 09:02:40 · 71 阅读 · 0 评论 -
牛客 AB7 【模板】队列 JAVA
第一行为一个正整数 � n ,代表操作次数。(1≤�≤100000)(1≤n≤100000)接下来的 � n ,每行为一个字符串,代表一个操作。保证操作是题目描述中三种中的一种。push x:将 � x 加入队尾,保证 � x 为 int 型整数。如果为另外两种,若队列为空,则输出 "error“如果操作为push,则不输出任何东西。front:输出队首:队首不出队。pop:输出队首,并让队首出队。否则按对应操作输出。原创 2023-07-19 09:16:29 · 48 阅读 · 0 评论 -
牛客 AB6 表达式求值 JAVA
数据范围:0≤∣�∣≤1000≤∣s∣≤100,保证计算结果始终在整型范围内。要求:空间复杂度: �(�)O(n),时间复杂度 �(�)O(n)请写一个整数计算器,支持加减乘三种运算和括号。原创 2023-07-18 09:26:28 · 43 阅读 · 0 评论 -
牛客 AB5 点击消除 JAVA
牛牛拿到了一个字符串。他每次“点击”,可以把字符串中相邻两个相同字母消除,例如,字符串"abbc"点击后可以生成"ac"。但相同而不相邻、不相同的相邻字母都是不可以被消除的。牛牛想把字符串变得尽可能短。他想知道,当他点击了足够多次之后,字符串的最终形态是什么?原创 2023-07-15 10:58:29 · 95 阅读 · 0 评论 -
牛客 AB4 逆波兰表达式求值 JAVA
数据范围:表达式长度满足 1≤�≤104 1≤n≤104 ,表达式中仅包含数字和 + ,- , * , / ,其中数字的大小满足 ∣���∣≤200 ∣val∣≤200。给定一个逆波兰表达式,求表达式的值。原创 2023-07-14 08:52:18 · 35 阅读 · 0 评论 -
牛客 AB3 有效括号序列 JAVA
给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列。括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。要求:空间复杂度 �(�)O(n),时间复杂度 �(�)O(n)数据范围:字符串长度 0≤�≤100000≤n≤10000。原创 2023-07-14 08:48:07 · 42 阅读 · 0 评论 -
牛客 AB2 栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。由于是[1,2,3,4,5]的压入顺序,[4,3,5,1,2]的弹出顺序,要求4,3,5必须在1,2前压入,且1,2不能弹出,但是这样压入的顺序,1又不能在2之前弹出,所以无法形成的,返回false。这样的顺序得到[4,5,3,2,1]这个序列,返回true。原创 2023-07-12 09:58:36 · 24 阅读 · 0 评论 -
牛客网 AB1 【模板】栈
【代码】牛客网 AB1 【模板】栈。原创 2023-07-11 09:14:14 · 38 阅读 · 0 评论