排序
文章平均质量分 57
Noric!
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
148 排序链表
时间复杂度内解决问题,满足这个条件的常用排序算法有:快速排序(Quick Sort)、归并排序(Merge Sort)和堆排序(Heap Sort)。为空之外,链表内只有一个元素的情况也要返回,不然会陷入死循环。为空的情况,返回时也要注意返回。,快速找到链表中间的节点;使用自定义节点做一个伪。递归的终止条件,除了。原创 2024-12-08 23:04:19 · 698 阅读 · 0 评论 -
56 合并区间
排序之后,区间的扩展方向只能是从左向右,因此只需要比较当前区间和上一个合并后的区间是否重叠即可,只要当前区间的左边界在上一个合并后区间的右边, 就不会重叠,从当前区间开始继续进行后面的合并,这样一次遍历就能找到所有的区间。这道题乍一看很复杂,对于任意两个区间判断是否重叠就有四种可能,而且之前两个不重叠的区间可能会因为新的合并而变得重叠,不好处理。但是一旦想到可以给这些区间排序,问题就变得简单了。函数就能完成快速排序,时间复杂度。原创 2024-09-20 00:21:48 · 377 阅读 · 0 评论 -
283 移动零
这个思路虽然可行,但实现代码仍有些繁琐,需要同时移动两个指针,并且考虑两个指针的范围问题。要创造自己一个假设,并在每一步都要做与假设一致的操作,维持假设成立,最后将假设变成“现实”。:假设以其为分界点,左边均为非零元素,右边均为0元素;:不断向右探索的指针,直至遍历到数组最后一个元素停止。右移1,以保证假设成立。若数组中无0元素,在移动过程中。若任意一个指针到达数组末尾时停止。,找到第一个非零元素时交换二者的值;每次仅移动一次指针(很多算法题的解题思路,都与。右边第一个非零元素坐标。始终指向第一个0元素。原创 2023-10-15 22:47:08 · 538 阅读 · 0 评论 -
Leetcode 5855 数组第K大的整数
这个题目就是一个排序问题,只不过排序的是字符串类型表示的整数。看提示信息可知每个数字的长度最长可达100,因此不能够将字符串转化成数字。做法很简单:自定义一个字符串数字比较函数,排序找到第k大的元素。C++ 中字符串可以直接比较大小,很方便,不要使用 compare 函数会导致排序错误。自带快排:(比较函数记得定义成 static bool;符号与意义相同 <:从小到大;>:从大到小)class Solution {public: static bool cmp (st..原创 2021-08-29 18:30:49 · 144 阅读 · 0 评论
分享