![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与力扣
古承风
写代码,但不做码农
展开
-
Leetcode之哈希查找
另外一种思路,我们可以把arr1中的元素都用字典存储起来其数量,然后遍历arr2中的元素,根据元素匹配形成第一步的res,之后我们只需要找到不在arr2中的元素放到后面即可。实际上,这就是相当于两个排序,我们把arr1中数据分为在和不在arr2的两个部分,对第一个部分,两个元素之间的大小比较规则是根据arr2中的相对顺序,对于第二个部分,进行正常的比较。需要注意的一点,每行的最后一个缝隙一定是最右侧边界,它是不能算的,因为题目要求不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。原创 2023-06-19 16:23:24 · 662 阅读 · 0 评论 -
Leetcode之二分查找
向后看一眼对于这种情况,当我们通过二分查找,找到第一个等于target的元素的时候,需要看一下mid右边的值是否也等于target,如果是,则我们需要继续对[mid+1,high]进行二分查找,如果不是,则说明mid就是我们要找的元素。题目链接解题思路参考上面的二分查找的变形,我们可以分别找到第一个大于等于target的下标和最后一个等于target的下标,然后返回这两个下标即可。原创 2023-06-05 08:41:17 · 783 阅读 · 0 评论 -
排序基础-快排&三路快排
快排的核心思想是,每次选取一个基准值,然后将数组分成两部分,一部分小于基准值,一部分大于基准值,然后递归处理这两部分。原创 2023-04-07 11:27:48 · 441 阅读 · 1 评论 -
leetcode 剑指offer 51 数组中的逆序对
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:限制:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/shu-zu-zhong-de-ni-xu-dui-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-30 09:33:12 · 86 阅读 · 0 评论 -
leetcode 75 颜色分类
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库的sort函数的情况下解决这个问题。示例 1:示例 2:提示:进阶:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/sort-colors著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-14 01:45:02 · 122 阅读 · 0 评论 -
剑指offer45 把数组组成最小的数
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:示例 2:提示:说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0来源:力扣(LeetCode)链接:https://leetcode.cn/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-14 01:17:28 · 66 阅读 · 0 评论 -
leetcode179最大数
给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例 1:示例 2:提示:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/largest-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-14 01:04:54 · 81 阅读 · 0 评论 -
leetcode252 会议室
给定一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,请你判断一个人是否能够参加这里面的全部会议。示例 1:示例 2:提示:通过次数18,055提交次数31,511来源:力扣(LeetCode)链接:https://leetcode.cn/problems/meeting-rooms著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-13 21:48:30 · 383 阅读 · 0 评论 -
leetcode56 合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例 1:示例 2:提示:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/merge-intervals著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2022-06-13 21:42:41 · 69 阅读 · 0 评论 -
二.4-动态数组-均摊时间复杂度&时间复杂度震荡
抖码算法动态数组(扩容/缩容)的时间复杂度背景: 动态数组,到达数组尾部扩容,扩容量为当前容量乘以2所以,最后的时间复杂度就是O(2)=O(1)O(2) = O(1)O(2)=O(1)→\rightarrow→ 带有扩容/缩容机制的动态数组的均摊时间复杂度为O(1)O(1)O(1)时间复杂度震荡在边界元素不断的增加和删除元素,会导致扩容和缩容操作交替执行,会导致时间复杂度震荡。此时的时间复杂度会退化至O(n)O(n)O(n)解决方式:缩容的判断标准从原来的size=12L原创 2021-12-20 10:16:31 · 257 阅读 · 0 评论