2020年9月2日

翻转单词顺序列

摘要: 题目描述:牛客最近来了一个新员工 Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事 Cat 对 Fish 写的内容颇感兴趣,有一天他向 Fish 借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“ 阅读全文

posted @ 2020-09-02 11:19 _那些你很冒险的梦 阅读(143) 评论(0) 推荐(0)

左旋转字符串

摘要: 题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列 S,请你把其循环左移 K 位后的序列输出。例如,字符序列 S=”abcXYZdef”,要求输出循环左移 3 位后的结果,即“XYZdefabc”。是不是很简单?O 阅读全文

posted @ 2020-09-02 10:40 _那些你很冒险的梦 阅读(99) 评论(0) 推荐(0)

第一个只出现一次的字符

摘要: 题目描述:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写,从0开始计数) 分析:这题我们看到题目后可以发现,因为它的字符串长度是有限的,而且我们需要找到只出现一次的字符,我们可以首先考虑用 Hashm 阅读全文

posted @ 2020-09-02 09:57 _那些你很冒险的梦 阅读(148) 评论(0) 推荐(0)

2020年9月1日

栈的压入、弹出序列

摘要: 题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长 阅读全文

posted @ 2020-09-01 12:00 _那些你很冒险的梦 阅读(89) 评论(0) 推荐(0)

包含 min 函数的栈

摘要: 题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数(时间复杂度应为O(1))。 分析:别人的题解之后都是使用了另外一个栈来保持在入栈过程中曾经做过最小值的值,pop 的时候判断两个栈顶元素是否一致,一致的话都要 pop,在这种情况下取最小值需要从保存最小值的栈顶 阅读全文

posted @ 2020-09-01 11:32 _那些你很冒险的梦 阅读(86) 评论(0) 推荐(0)

用两个栈实现队列

摘要: 题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 分析: 队列的特性是:“先入先出”,栈的特性是:“先入后出”。 当我们向模拟的队列插入数 a,b,c 时,假设插入的是 stack1,此时的栈情况为: 栈 stack1:{a,b,c} 栈 stack2: 阅读全文

posted @ 2020-09-01 10:31 _那些你很冒险的梦 阅读(138) 评论(0) 推荐(0)

2020年8月31日

二叉搜索树的第 K 个结点

摘要: 题目描述:给定一棵二叉搜索树,请找出其中的第 k 小的结点。例如,(5,3,7,2,4,6,8)中,按结点数值大小顺序第三小结点的值为 4。 分析:二叉排序树,中序遍历是递增序列 PS:与牛客相同! 代码: 1 import java.util.Stack; 2 3 public class Sol 阅读全文

posted @ 2020-08-31 09:56 _那些你很冒险的梦 阅读(86) 评论(0) 推荐(0)

序列化二叉树

摘要: 题目描述:请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节 阅读全文

posted @ 2020-08-31 09:32 _那些你很冒险的梦 阅读(93) 评论(0) 推荐(0)

把二叉树打印成多行

摘要: 题目描述:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 PS:与牛客相同! 代码: 阅读全文

posted @ 2020-08-31 09:01 _那些你很冒险的梦 阅读(104) 评论(0) 推荐(0)

2020年8月30日

按之字型顺序打印二叉树

摘要: 题目描述:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 分析:其实就是二叉树的层级遍历,不过是在遍历的时候,需要将偶数层的节点逆序。 关键点:每次只处理上次在queue中剩余的节点,这是上一层的所有节 阅读全文

posted @ 2020-08-30 16:40 _那些你很冒险的梦 阅读(119) 评论(0) 推荐(0)

导航