仅供自己学习 思路: 思路比较简单,但要注意细节处理。 一开始就是想遍历寻找nums[i]<nums[i-1]获得旋转点,然后对这两侧的数组分别使用二分搜索,但是一直报错,找不到原因。 根据题解二分可知二分的本质是二段性,而非单调性。只要一段满足某个性质,另外一段不满足这个性质就可以用二分。 对于一 ...
分类:
其他好文 时间:
2021-04-08 13:18:01
阅读次数:
0
一.总述 分治算法其实就是将一个大问题分解为若干个类型相同但是规模较小的子问题,使用递归的方式一直分解下去,然后将子问题的解合并得到原问题的解的策略。 二.经典的分治算法列举 二分搜索、大整数乘法、strassen矩阵乘法、棋盘覆盖、合并排序、快速排序、线性时间选择、最接近点对问题、循环赛日程表、汉 ...
分类:
编程语言 时间:
2021-02-17 14:56:19
阅读次数:
0
基于平衡二叉树实现Set public class AVLTreeSet<E extends Comparable<E>> implements ISet<E> { private AVLTree<E,Object> avl; public AVLTreeSet(){ avl = new AVLTr ...
分类:
其他好文 时间:
2021-02-17 14:54:37
阅读次数:
0
二分搜索简介 在计算机科学中,二分搜索(binary search)也称折半搜索(half-interval search)、对数搜索(logarithmic search),是在有序数组中查找某一特定元素的搜索算法。 其基本思想是通过逐次比较数组特定范围的中间元素与目标元素的大小,每次缩小一半的搜 ...
分类:
其他好文 时间:
2020-11-12 13:35:55
阅读次数:
9
java-多线程并发编程: 重新学习下多线程并发编程 java基础:优先队列:PriorityQueue、数组赋值:System.arraycopy、二分搜索:Arrays.binarySearch 查看死锁(面试会问,比较好玩): 1. 命令行:jps 2. 查看堆栈:jstack pid 3. ...
分类:
编程语言 时间:
2020-10-16 11:03:20
阅读次数:
29
实现 int sqrt(int x) 函数 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4 输出: 2 示例 2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数 ...
分类:
其他好文 时间:
2020-09-17 16:12:07
阅读次数:
26
分治法代码实现 1、猜数游戏——二分搜索技术 //program 3-1 #include<iostream> #include<cstdlib> #include<algorithm> using namespace std; const int M=10000; int x,n,i; int s ...
分类:
编程语言 时间:
2020-09-16 12:21:41
阅读次数:
37
本题的high level的思想是二分搜索这样的substring最多能有多长。对于一个固定的len,如果能在S里找到两处相同的子串滑窗,那么我们就可以对len的搜索往上调整;反之,我们就必须将len的搜索往下调。 于是本题转化为,如果快速在S里找到两处相同的、长度都是len的滑窗。比较直观的想法是 ...
分类:
其他好文 时间:
2020-07-27 09:41:50
阅读次数:
90
递归(Recursion)算法思想递归算法是一种调用自身函数的算法(二叉树的许多性质在定义上就满足递归)。递归的基本性质就是函数调用,在处理问题的时候,递归往往是把一个大规模的问题不断地变小然后进行推导的过程。 举例:(汉诺塔问题)有三个塔 A、B、C,一开始的时候,在塔 A 上放着 n 个盘子,它 ...
分类:
编程语言 时间:
2020-07-14 00:42:37
阅读次数:
70
1、简介 ? 在计算机科学中,AVL树是最早被发明的自平衡二叉查找树。在AVL树中,任一结点对应的两棵子树的最大高度差为1,因此它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下的时间复杂度都是O(log n)。增加和删除元素的操作则可能需要借由一次或多次树旋转,以实现树的重新平衡。AVL树得 ...
分类:
其他好文 时间:
2020-07-05 21:33:02
阅读次数:
63