题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组?[3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 思路 最早是线性 看了题解后发现可以分治 ...
分类:
编程语言 时间:
2020-02-22 23:54:12
阅读次数:
131
B+树作为索引最为常见,亦是数据库中最为频繁的一种索引。 B+树通过二叉查找树,再由平衡二叉树,最后加B树演化而来。 1. 二分查找法 二分查找法(binary search)也叫折半查找法,从有序数组中查询某一条记录。 基本思想:将记录按有序(递增或递减)排列,先查找数组中的中间位置的对象,如果t ...
分类:
其他好文 时间:
2020-02-22 20:05:29
阅读次数:
56
输入给出m条边,要求找到一条最长的路径满足边按照输入的顺序出现并且权值严格递增 两种方法:第一种利用单调队列性质 第二种利用数据结构优化 #include<bits/stdc++.h> #define forn(i, n) for (int i = 0 ; i < int(n) ; i++) #de ...
分类:
其他好文 时间:
2020-02-22 16:06:17
阅读次数:
69
算法的详情就不讲了. 解决的是单源最短路径问题,具体就是一个源点到众多其他结点的距离是否有最短路,且为多少? 本质就是按照长度递增次序产生最短路径. 为何长度递增就能产生最短路呢? 原因在于算法本身是基于贪心思想.每一阶段都试图找寻还未确定的点中最有"潜质"的点. 按照的长度递增的战略思路.这是极为 ...
分类:
编程语言 时间:
2020-02-22 00:15:58
阅读次数:
96
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 参考博客:https://blog.csdn.net/qq_18254385/article/details/94558439 原博客有些错误!!! 解法1: (容器法)首先将两个链表保存到容器内,然 ...
分类:
编程语言 时间:
2020-02-21 22:09:17
阅读次数:
58
找出在数组中的最长递增子序列 数组:1,9,2,5,7,3,4,6,8,0 最长递增子序列:3,4,6,8 思路: 遇到大的就移动,如果在某一个位置变小了就计算这一段的长度(双指针)不停更新最大的length一个在前线,一个在后面作为游标,最后结束了看一下战线拉了有多长 public class 最 ...
分类:
编程语言 时间:
2020-02-21 20:12:04
阅读次数:
88
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,改数组的最小值为1. 分析:既然说是改造的二分法,那么就是找到中间值,然后根据左边还是右边去找最小值,然 ...
分类:
编程语言 时间:
2020-02-21 20:11:14
阅读次数:
72
这种题一般是给定N个数,然后N个数之间通过某种计算得到了新的数列,求这新的数列的第K大的值 POJ3579 题意: 用$N$个数的序列$x[i]$,生成一个新序列$b$。 新的序列定义为:对于任意的$ i$,$j$且 $i != j $有$b[] = abs(x[i] - x[j])$ 问新序列的中 ...
分类:
其他好文 时间:
2020-02-21 20:06:18
阅读次数:
107
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19] ...
分类:
编程语言 时间:
2020-02-21 14:35:57
阅读次数:
82
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 ,这个神奇的数字也叫 Kaprekar 常数。 例如,我们从 开始,将得到 现给定任意 4 ...
分类:
其他好文 时间:
2020-02-20 10:06:20
阅读次数:
46