摘要: 1.问题描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 2.测试用例 示例 1 输入:intervals = [[1,3],[ 阅读全文
posted @ 2021-12-22 23:37 别摸我键盘 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 1.问题描述 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 2.测试用例 示例 1 输入:nums = [2,0,2,1,1,0] 输出:[0,0 阅读全文
posted @ 2021-12-21 22:31 别摸我键盘 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 1.问题描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 2.测试用例 示例 1 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2 输入: [3,2,3,1,2,4 阅读全文
posted @ 2021-12-21 00:10 别摸我键盘 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 1.问题描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 2.测试用例 示例 1 输入: [2,2,1] 输出: 1 示例 2 输入: [4,1,2,1,2] 输出: 阅读全文
posted @ 2021-12-19 23:33 别摸我键盘 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 简介 插入排序的算法,同样描述了一种简单直观的排序。 它的工作原理是:构建一个有序序列。对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 因为需要双重循环,所以时间复杂度均为O(n^2)。排序过程中,只需要额外的常数空间,所以空间复杂度均为O(1)。 排序过程 实现 @Test pu 阅读全文
posted @ 2021-12-18 12:56 别摸我键盘 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 简介 约翰·冯·诺伊曼在 1945 年提出了归并排序。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表, 阅读全文
posted @ 2021-12-16 22:39 别摸我键盘 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 简介 快速排序的基本思想:通过一趟排序,将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 可以看出,快排也应用了分治思想,一般会用递归来实现。 快速排序使用分治法来把一个串(list)分为两个子串(sub-lists 阅读全文
posted @ 2021-12-15 23:28 别摸我键盘 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 简介 1959年由Shell发明,是第一个突破O(n2)的排序算法,是简单插入排序的改进版。 它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序。 希尔排序在数组中采用跳跃式分组的策略,通过某个增量将数组元素划分为若干组,然后分组进行插入排序,随后逐步缩小增量,继续按组 阅读全文
posted @ 2021-12-14 19:57 别摸我键盘 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 简介 冒泡排序也是一种简单的排序算法。 它的基本原理是:重复地扫描要排序的数列,一次比较两个元素,如果它们的大小顺序错误,就把它们交换过来。这样,一次扫描结束,我们可以确保最大(小)的值被移动到序列末尾。 这个算法的名字由来,就是因为越小的元素会经由交换,慢慢“浮”到数列的顶端。 排序过程 实现 / 阅读全文
posted @ 2021-12-13 22:51 别摸我键盘 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 简介 选择排序是一种简单直观的排序算法。 它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后追加到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 排序过程 实现 /** * 选择排序 * @param nums 阅读全文
posted @ 2021-12-12 22:50 别摸我键盘 阅读(25) 评论(0) 推荐(0) 编辑