算法
文章平均质量分 56
算法
沉着的码农
一个沉着的码农
展开
-
【牛客网】另类加法
【代码】【牛客网】另类加法。原创 2023-10-19 21:09:43 · 102 阅读 · 0 评论 -
【Leetcode】二分查找合集
通过二分查找的方式,找到这段区间的左边界和右边界即可。原创 2023-10-05 00:31:51 · 284 阅读 · 0 评论 -
【Leetcode】滑动窗口合集
【代码】【Leetcode】滑动窗口合集。原创 2023-10-04 13:53:14 · 224 阅读 · 0 评论 -
【牛客网】JZ39 数组中出现次数超过一半的数字
将数组排序,再保证有结果的情况下,此时数组中间的数字就是想要的结果。原创 2023-10-02 18:44:02 · 88 阅读 · 0 评论 -
【牛客网】OR59 字符串中找出连续最长的数字串
【代码】【牛客网】OR59 字符串中找出连续最长的数字串。原创 2023-10-02 18:36:14 · 119 阅读 · 0 评论 -
【牛客网】OR63 删除公共字符串
【代码】【牛客网】OR63 删除公共字符串。原创 2023-09-26 21:50:58 · 63 阅读 · 0 评论 -
【Java数据结构】排序
这个方法的基本思想是**定义一个前后指针left和right 一个指向序列头 一个指向序列尾 指针移动 当right指针指向小于key值的元素时停下 left指针指向大于key值时停下 此时让left指针和right指针指向的元素交换 知道left指针遇到right指针时停下 **最后还需要做的操作是将pre处的数据与left处的数据进行交换,这样就确定了key应该在的位置。**此时因为我们将中间大小的元素 放在了序列的开头 让元素基本平均放在key值的左右 此时就可以减少递归的次数 **原创 2023-05-11 20:14:58 · 415 阅读 · 0 评论 -
【Leetcode】141.环形链表
【代码】【Leetcode】141.环形链表。原创 2023-04-16 13:16:18 · 53 阅读 · 0 评论 -
【Leetcode】160.相交链表
【代码】【Leetcode】160.相交链表。原创 2023-04-16 10:35:48 · 53 阅读 · 0 评论 -
【Leetcode】203.移除链表中元素
【代码】【Leetcode】203.移除链表中元素。原创 2023-04-12 20:08:53 · 54 阅读 · 0 评论 -
【C/C++】前缀和和差分
简单来说而差分是前缀和的逆运算。原创 2023-03-14 16:42:57 · 885 阅读 · 0 评论 -
【二分查找】数的范围
每次二分检查 mid 和 我们要找的这个数的大小关系直到。原创 2023-03-09 20:29:05 · 289 阅读 · 2 评论 -
【归并排序】逆序对的个数
我们可以分别设置两个标记来标记left和right数组的起始位置。我们在逐一归并这两个数组时 我们要找出两个数组中较小的那个。我们很容易想到 在每次递归的归时 返回的数列一定是有序的。求逆序对的个数可以用归并排序中计数的方式进行。原创 2023-03-07 21:00:36 · 128 阅读 · 0 评论 -
【排序】归并排序
排序的原理是拆分到最小时mid左侧的数组和右侧的数比较后放在temp数组中这样temp数组中就是有序的数组,如此即可完成排序。每次递归都将数组拆分成等大的两个部分 知道递归到只有一个或者没有元素为止 然后在归,将每一段拼接成一个数组 完成排序。因为每次都从中间拆开 所以时间复杂度是稳定的o(nlogn)归并排序和快排一样都采用了。原创 2023-03-07 10:49:02 · 57 阅读 · 0 评论 -
【快速排序选择】第k个数
【代码】【快速排序选择】第k个数。原创 2023-03-06 22:07:45 · 67 阅读 · 0 评论 -
【排序】快速排序
在平均情况下 该算法的运行时间为O(n) * O(logn)= O(nlogn)。此时你进行一次大循环后 发现分界点左侧没有元素 因为你选择的分界点就是最小的元素。在最糟情况下 该算法的运行时间为O(n) * O(n) = O(n2)。因为每次都要遍历一遍 都要遍历一遍所有元素 就是o(n)因为每次都要遍历一遍 都要遍历一遍所有元素 就是o(n)将将左端点的左侧都放置成小于等于分界点的数。递归调用 处理分界点左侧的数据和右侧的数据。将右端点的右侧都放置成大于等于分界点的数。时间复杂是O(logn)原创 2023-03-03 12:12:56 · 51 阅读 · 0 评论