![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 78
研究僧-彬彬
这个作者很懒,什么都没留下…
展开
-
【C++】编程题遇到行数不固定的字符串(以逗号或空格分割)
istringstream从string读取数据,ostringstream向string写入数据,而stringstream即可从string读取数据,也能向string写数据(也是后面用到的)。getline和cin都是可以读取字符串,但是cin读取字符串是以空格符、换行符、制表符为结束标志,getline是以换行符为读取标志。...原创 2022-08-17 12:01:36 · 526 阅读 · 0 评论 -
【算法】前缀树、单词查找树、字典树(C++)
前缀树的编码原创 2022-07-14 10:51:17 · 593 阅读 · 0 评论 -
【算法】LeetCode第6076题,如何确定用int还是long long及不要对浮点数进行【等于比较】
这是LeetCode周赛的一道题目,难度是中等。思路很简单,细节容易出错。思路只要不断比较斜率,出现新的斜率,线段数就加1。细节class Solution {public: int minimumLines(vector<vector<int>>& pri) { int n = pri.size(); sort (pri.begin(), pri.end()); if (n == 1) return 0;.原创 2022-05-22 14:35:26 · 500 阅读 · 0 评论 -
【算法】Leetcode第34题在排序数组中查找元素的第一个和最后一个位置(二分查找的特殊修改)
二分查找的一般模板如下所示,首先边界取的是0和n-1,左边界和右边界都可以取值,所以while的条件语句是left小于等于right。这个一般模板适用的是无重复的有序数组。 int left = 0; int n = nums.size(); int right = n - 1; while (left <= right) { int mid = left + (right - left) / 2; //找中原创 2022-04-28 17:05:54 · 560 阅读 · 1 评论 -
【算法】Leetcode第215题堆排序内部原理分析(C++)
1.前言第一种方法是基于快速排序的选择方法【算法】Leetcode第215题快速排序内部原理分析(C++)。按照Leetcode官方题解的说法,堆排序是常见的面试问题,所以还是分析一下原理。2.基本原理2.1构建二叉堆我可以用一个完全二叉树去表示数组,根结点在位置0,它的子结点在位置1和2,而子结点的子结点则分别在位置3、4、5、6,以此类推,直到数组元素都用完。这样形成的二叉树,又称二叉堆。二叉堆是一组能够用推有序的完全二叉树排序的元素,并在数组中按层级存储。在下文中,我们将二叉堆称为堆。原创 2022-04-12 17:33:42 · 1333 阅读 · 3 评论 -
【算法】Leetcode第215题快速排序内部原理分析(C++)
1.前言LeetCode第215题目为数组中的第K个最大元素,这个题目可以用库函数sort直接排序然后完成。sort(nums.begin(), nums.end());return nums[nums.size() - k];sort函数原理是快速排序,接下来去探究一下这个算法的本质。快速排序是由C.A.R Hoare在1960年发明的,快速排序可能是应用最广泛的排序算法了,如它名字所述,该算法的特点就是快,一般时间复杂度是O(nlgn),但是在某些特殊情况下,时间复杂度会达到(n²)。2原创 2022-04-12 15:50:20 · 2002 阅读 · 0 评论