自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 166 数独

因为上用了二进制数表示所以要高速的知道二进制数中一所在的位置。又因为要枝剪所以根部的选择因该尽量少。要尽快得出能用数的数量并取最小。这两个操作都很费时。技巧打表也就是预处理。要保存每一行每一列和每个九宫格已经用过的数取交集,交集表示已经用过的数。可以用二进制数进行&计算表示交集。主函数用于对行和列以及九宫格数组进行提前处理。将数独中空着的数一个个试dfs。// 这个数有几个1。而dfs函数对其进行操作。

2024-02-26 22:56:46 374 1

原创 149 荷马史诗

i ++){//这里小根堆以first为第一关键字second为第二关键字所以取层数最小的要求已被小根堆解决。//若是不能整除就补零可以免去特判。//每次结合层数加一。注意要点 首先叶节点是否排满可以插入0解决,当多个值相同时应选择最小层数;要求 合并k个的哈夫曼树并且取层数与树的带权路径长度和最小。

2024-02-19 11:45:31 348 1

原创 139 回文子串最大长度

看半径的前后是否是字母判断字母是多一个还是少一个总数是2l + 1;粗略思路:先用哈希将这段的前后缀用131进制的数表示,这样想求前后两段是否一样时只用比较其哈希值就可以了,然后遍历整个字符串用二分法求前后的合理半径最后得出最大回文数。哈希:将一个字符串中的每一位即其前缀当成一个131进制的数。

2024-02-16 11:53:32 337 1

原创 137 雪花雪花雪花

取两指针j = 1 ,i = 0偏移值k = 0。欲求a数组的最小字典序即将两个a数组拼接在一起形成一个b数组前六个中不管从哪个开始就类比于旋转。当a[i] == a[j]时偏移量加一直到有一方较大。较大者偏移量前的都不会取到i += k + 1。如果偏移量 == n则全数组相等。直到i == 6 || j == 6。两种都取最小字典序的排列,取最小。哈希表——将雪花相同映射为最小字典序相同(最小字典序是唯一的其相同则雪花相同)if(i == j) i ++;对比每个雪花的最小字典序相同则雪花相同。

2024-02-14 11:59:42 344 1

原创 135.最大子序列和

单调队列 随着遍历队列前的数出队列队列后的数入队列。可以发现当队列中一个数的前一个数大于或等于这个数则前一个数无用(这个数先出而且去最小前缀和时因为其前一个数的存在不会被选取)。队列中最小前缀和是对列头。// 这个hh和tt的选取是将s[0]作为队列头。输入一个长度为 n 的整数序列,从中找出一段长度不超过 m 的连续子序列,使得子序列中所有数的和最大。从1遍历到n将其作为队列尾算出其前m个前缀和差值的最大值。因为每个数只会进出队列一次且取最小前缀和操作时间复杂度为o(1)所以其总时间复杂度并不大。

2024-02-10 13:24:46 537 1

原创 STL常用函数

unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表。不支持 lower_bound()/upper_bound(), 迭代器的++,--lower_bound(x) 返回大于等于x的最小的数的迭代器。时间复杂度是 O(logn)(1) 输入是一个数x,删除所有x O(k + logn)upper_bound(x) 返回大于x的最小的数的迭代器。substr(起始下标,(子串长度)) 返回子串。

2024-02-08 11:39:12 368

原创 131.直方图中最大矩形

直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为 2,1,4,5,1,3,32,1,4,5,1,3,3 的矩形组成的直方图,矩形的宽度都为 11:通常,直方图用于表示离散分布,例如,文本中字符的频率。现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。图例右图显示了所描绘直方图的最大对齐矩形。

2024-02-08 09:39:19 361

原创 130 火车进出站问题

题目描述如下一列火车 n节车厢,依次编号为 1,2,3,…,n。每节车厢有两种运动方式,进栈与出栈,问 n 节车厢出栈的可能排列方式有多少种。

2024-02-07 11:51:46 340 1

原创 各种的筛法求质数

j < n / i;//优化一下j从开始遍历。从二到n枚举,将枚举的每个数的倍数打上是质数的标记。把是质数的数记录到数组中。此方法可看作上一方法的上位代替解决了重复标记的问题。此方法会遇到一个非质数多次被标记的情况不是最优解。·一. 暴力遍历取模。微改良的是可以从2遍历到根号n。用于求一个区间内的质素。// 用于求单个质数。

2024-02-06 20:30:22 332

原创 116 飞行员兄弟

飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有 1616 个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个 4×44×4 的矩阵,您可以改变任何一个位置 [i,j][�,�] 上把手的状态。但是,这也会使得第 i� 行和第 j� 列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。

2024-02-04 19:09:13 466

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除