![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 59
rannrann
这个作者很懒,什么都没留下…
展开
-
【c++&leetcode】35. Search Insert Position
由于给到的数组是从小到大的,可以使用二分搜索法,即以中间的元素为界,如果大于中间元素,范围限定在右半边,如果小于中间元素,范围限定在左半边。假设数组元素数为n,范围依次是。假设通过k次找到指定元素,时间复杂度为O(logn)时间复杂度O(logn)原创 2024-04-29 09:16:26 · 212 阅读 · 0 评论 -
【c++&leetcode】26. Remove Duplicates from Sorted Array
在map中插入元素的平均时间复杂度为O(logn),这是因为map通常被实现为平衡的二进制搜索树(例如,红黑树),其中每个插入操作涉及从根遍历树到适当的叶节点,这平均需要O(logn)时间。由于映射的大小最多等于“nums”中的唯一元素的数量,因此该循环的时间复杂度为O(n),其中n是“nums’中的唯一元件的数量。-与“std::unordered_map”相比,“std::map”通常具有更高的内存开销,因为它需要为树结构存储额外的指针。思路是map元素的特点是唯一性,每一个元素都是独一无二的。原创 2024-04-13 06:05:11 · 314 阅读 · 0 评论 -
【c++&leetcode】14. Longest Common Prefix
排序一组数组需要O(nlogn)。比较两个字符需要O(1)的时间复杂度,最大迭代次数是最短共有字符串的长度,假设为m。所以O(nlog(n)+m) = O(nlog(n))。如果按照字母顺序排序数组中的元素,那么第一个元素和最后一个元素之间的比较会有最不同的前缀。时间复杂度为O(nlog(n)),其中m是最大长度,n为元素个数。时间复杂度如果有分析不到位的地方,请各位多多指教。原创 2024-04-12 20:25:03 · 341 阅读 · 0 评论 -
【c++&leetcode】2265. Count Nodes Equal to Average of Subtree
这道题如果从上往下访问结点,只能计算和判断根节点的值是否是子树和的平均值。而从下往上访问结点,适用于所有的结点。原创 2023-12-10 18:08:13 · 454 阅读 · 1 评论 -
【c++&Leetcode】287. Find the Duplicate Number, 142. Linked List Cycle II
这就可以将索引视为指针,元素视为地址,画出下面这样的图进而观察到重复数的特点。这也就意味着,如果从不同方向的两个起点出发都是可以到达重复数的位置。如果两个起点和重复数位置的距离一样的话,那么两个指针一起从起点处出发必然可以相遇,而相遇的位置正好就是重复数的位置。起点1就是从索引0处开始。快慢指针同时从索引0处出发,它们第一次相遇的位置就是起点2。),还可以用来检测重复数。找到起点2之后我们可以再让一个慢指针从0处出发,两个慢指针同时出发,相遇的位置即重复数。如下图,两个指针走了三次后最终在3处相遇。原创 2023-11-01 15:17:31 · 132 阅读 · 0 评论 -
【Leetcode&C++】1071. Greatest Common Divisor of Strings
1071. Greatest Common Divisor of Strings原创 2023-02-06 00:27:16 · 270 阅读 · 0 评论 -
【Leetcode&C++】525. Contiguous Array
问题入口实现错误做法:3个for循环引发Time Limit Exceeded 按照题意,返回最大的连续的有相同个数的0和1的元素个数maxLength。既然0和1的个数相同,那么maxLength就应该是偶数。如果numsSize是偶数,那么maxLength最大可能是numsSize;如果numsSize是奇数,那么maxLength最大可能是numsSize-1。对于maxLength出现的这两种情况,有且只有一个可能性...原创 2021-11-22 12:09:37 · 82 阅读 · 0 评论 -
【Leetcode报错】多维数组创建引发的heap-buffer-overflow
创建三维数组在visual studio 2017没有报错,但是在leetcode报错heap-buffer-overflow错误写法 int ***IntervalIndex = (int***)malloc(sizeof(int)*max); for (int i = 0; i < max; i++) { IntervalIndex[i] = (int**)malloc(sizeof(int)*EventAccount[i]); for (int j = 0; j <原创 2021-01-10 15:48:50 · 170 阅读 · 0 评论 -
【Leetcode报错】 error: stray ‘\302’ in program
原因出现该错误的原因,请移步到这里。解决方法1、打开IDE,将报错的文本复制粘贴进去。2、复制IDE中的文本,然后粘贴回leetcode。原创 2021-01-03 16:13:56 · 471 阅读 · 0 评论 -
【Leetcode&C&并查集】959. Regions Cut By Slashes
问题入口https://leetcode.com/problems/regions-cut-by-slashes/实现这道题是对并查集的练习。并查集两个重要操作是Union和find。而合并什么是个问题。合并线段,将连在一起的线段合并为一个集合,这样就能得到线段数,但是线段数和区域数之间不是线性关系。例如下图(黑线用来划分网格,红线是题目给过的参数),线段数分别是2和5,但是区域数都是4。而合并区域的话,如果还把网格看成一个整体就没办法合并。解决方案是把一个网格分成四个三角形,不论红线是原创 2020-10-29 14:12:22 · 130 阅读 · 0 评论 -
【Leetcode&C&Tire】677. Map Sum Pairs
问题入口实现通过递归很好解决该问题,但是由于遍历次数过多引发了Runtime Error(ps:这是用C语言编写的情况下),所以需要寻找其他解决方法。在我原本使用递归思路解决问题时,我对MapSum结构体定义如下:struct MapSum{MapSum **next; int value;};value>0(题目给的值都是正数)就表达了这个单词的值,同时也说明这是单词的结尾。等于一个属性参与了两个动作。如果我把每次加入的值都加在每一个字母上又会如何呢...原创 2020-10-05 16:13:24 · 100 阅读 · 0 评论 -
【Leetcode&C语言&Tire】208.Implement Trie (Prefix Tree) & 211.Design Add and Search Words Data Structure
这两道题难度是递进的关系,所以适合一起说。以下为题目入口208.Implement Trie (Prefix Tree)211.Design Add and Search Words Data Structure目录208.Implement Trie (Prefix Tree)实现211.Design Add and Search Words Data Structure实现208.Implement Trie (Prefix Tree)实现...原创 2020-09-27 13:19:28 · 185 阅读 · 0 评论 -
【Leetcode&C语言】347. Top K Frequent Elements
问题描述Given a non-empty array of integers, return thekmost frequent elements.非空的整型数组,返回K个出现次数最频繁的元素举例说明Example 1:Input: nums = [1,1,1,2,2,3], k = 2Output: [1,2]Example 2:Input: nums = [1], k = 1Output: [1]注意You may assumekis ...原创 2020-09-07 18:24:04 · 213 阅读 · 0 评论