题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! ...
分类:
其他好文 时间:
2020-03-10 16:05:21
阅读次数:
54
1.二叉查找树 2.红黑树 2.1定义 2.2变换规则 左旋 右旋 部分实现代码 package 练习; public class RedBlackTree { private final int R = 0; private final int B = 1; private Node root = ...
分类:
其他好文 时间:
2020-03-02 01:05:45
阅读次数:
77
一、平衡二叉树的定义 1. 使树的高度在每次插入元素后仍然能保持O(logn)的级别 2. AVL仍然是一棵二叉查找树 3. 左右子树的高度之差是平衡因子,且值不超过1 二、平衡二叉树的基本操作 1. 查找操作 查找方法和二叉查找树一致 2. 插入操作 左旋(Left Rotation) 右旋(Ri ...
分类:
其他好文 时间:
2020-02-20 22:28:20
阅读次数:
83
38 数字在排序数组中出现的次数 39 二叉树的深度 40 数组中只出现一次的数字 41 和为s的两个数字 VS 和为s的连续正数序列 42 反转单词顺序 VS 左旋转字符串 43 n个骰子的点数 44 扑克牌的顺子 45 圆圈中最后剩下的数字 46 求1+2+...+n 47 不用加减乘除做加法 ...
分类:
其他好文 时间:
2020-02-19 22:28:03
阅读次数:
88
平衡二叉树是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树 平衡二叉树解决了二叉排序树的查询效率问题(连续递增数据创建二叉排序树时) 平衡二叉树的难点在于左右旋转,这里用 new 代表新节点 old 代表旧 '根' 节点 左旋转: 1)new.value = ...
分类:
其他好文 时间:
2020-02-14 16:47:42
阅读次数:
59
【定义】 【平衡树】 每个叶子结点的深度差不超过1的二叉树 【伸展树】 【常用问题】 splay的操作,通过左旋右旋,将某个结点通过旋转旋转至根节点,使树的结构发生变化,尽可能的平衡 并且因为左旋右旋的性质,当原树是一个二叉排序树的时候,splay依旧能够使原树保持二叉排序树的性质 左旋右旋图片 【 ...
分类:
编程语言 时间:
2020-02-09 22:04:04
阅读次数:
89
伸展树 Splay 维基百科上称为伸展树,但是国内好像一般叫平衡树,是众多平衡树中比较优秀的一种。 平衡树左旋右旋不会影响中序遍历顺序。 一棵平衡树的中序遍历顺序是值递增排序的,相当于从小到大到大排了一次序。 平衡树的作用: 平衡树其实就是一棵二叉搜索树,set和map都是平衡树实现。 一棵二叉搜索 ...
分类:
其他好文 时间:
2020-02-06 14:19:56
阅读次数:
56
面试题58:翻转字符串 问题描述 问题(1) 翻转单词顺序 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。 例如输入字符串"I am a student. ",则输出"student. a am I"。 问题(2)左旋转字符串 字符串的左旋转 ...
分类:
其他好文 时间:
2020-02-01 19:15:35
阅读次数:
112
我们回忆一下AVL树,它在插入和删除节点时,总要保证任意节点左右子树的高度差不超过1。正是因为有这样的限制,插入一个节点和删除一个节点都有可能调整多个节点的不平衡状态。频繁的左旋转和右旋转操作一定会影响整个AVL树的性能,除非是平衡与不平衡变化很少的情况下,否则AVL树所带来的搜索性能提升不足以弥补 ...
分类:
其他好文 时间:
2020-01-26 16:05:48
阅读次数:
95
剑指OFFER 左旋转字符串 方法1:新创建一个字符串 写得十分简洁了,比当时第一次写这种类型的题的时候进步很大了. 方法2:直接在原字符串上进行修改 "与这道题类似,这道题是右旋转" 稍加修改就可以通过了 ...
分类:
其他好文 时间:
2020-01-11 13:33:43
阅读次数:
86