算法方向分析 对于这题 \(\le 1000000\) 的数据规模显然只允许我们用一重循环。 最长,可见这是道最值问题。 最值问题可以用贪心,DP,二分…… 这道题我们用 DP 来做。 构建状态 首先,我们需要构建状态,状态的构建不是唯一的,受最长上升子序列的影响,我是这样构建的:令 \(f_i\) ...
分类:
其他好文 时间:
2021-07-19 16:39:33
阅读次数:
0
3768. 字符串删减 - AcWing题库 思路 双指针的练习 C++代码 #include <iostream> #include <cstring> #include <algorithm> using namespace std; int main() { int n; string s; ...
分类:
编程语言 时间:
2021-07-19 16:34:51
阅读次数:
0
前言: 冒泡,选择:使用了普通双指针法 插入,快速,归并:使用了二分法,递归 冒泡排序 原理:不断比较相邻两个数得大小,把较大的数交换到靠后的位置 def bubbleSort(iList): '''冒泡排序 ''' if len(iList) <= 1: return iList for i in ...
分类:
编程语言 时间:
2021-07-16 17:32:50
阅读次数:
0
需求背景: 查看前top N的用户 查看自己的排名 用户积分变更后,排名及时更新 1:保留排行榜2倍大小的缓存 2:对比排行榜中最小的数值,比它大,插入排行榜中 参考:http://www.cocoachina.com/articles/13638 ...
分类:
编程语言 时间:
2021-07-15 19:00:52
阅读次数:
0
https://www.cnblogs.com/shizuchengxuyuan/p/15008799.html ...
分类:
编程语言 时间:
2021-07-15 18:59:26
阅读次数:
0
C++ STL中的算法(Algorithms)作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。按照对容器内容的操作可将STL 中的算法大致分为四类: (1)只读算法:指不直接修改其所操作的容器内容的算法。 (2)可变序列算法:指可以修改它们所操作的容器内容 ...
分类:
编程语言 时间:
2021-07-12 18:25:22
阅读次数:
0
选择排序: 数据较少时可以用,缺点:时间复杂度n的平方,优点:空间复杂度小 具体实现: /** * 选择排序 * * @param $array * @return mixed */ public function sort($array) { $len = count($array); if ($ ...
分类:
编程语言 时间:
2021-07-12 18:06:27
阅读次数:
0
快速排序: 总体最优,数据大时性能最好 具体实现:设置一个基准值,小于基准值放左边,大于基准值放右边,最后递归继续排左右两侧的,最后排完后合并 /** * 快速排序 * * @param $array * @return array */ public function sort($array): ...
分类:
编程语言 时间:
2021-07-12 18:06:10
阅读次数:
0
冒泡排序: 数据少时可以用,简单,稳定 具体实现: /** * @param $array * @return mixed */ public function sort($array) { $len = count($array); if ($len 1) { return $array; } / ...
分类:
编程语言 时间:
2021-07-12 18:05:32
阅读次数:
0
一、简介 1 模拟退火算法原理 模拟退火算法来源于固体退火原理,是一种基于概率的算法,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。退火是指将固体加热到足够高的温度,使分子呈随 ...
分类:
编程语言 时间:
2021-07-12 18:01:01
阅读次数:
0