算法
Schuyler Hu
这个作者很懒,什么都没留下…
展开
-
删除有序链表中重复的元素-II
出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。利用快慢双指针,fast 去探测非重复元素,slow 负责记录非重复元素。原创 2022-06-13 14:49:49 · 169 阅读 · 0 评论 -
比较版本号
牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等现在给你2个版本号version1和version2,请你比较他们的大小版本号是由修订号组成,修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成,修订号可能包含前导0,且是合法的。例如,1.02.11,0.1,0.2都是合法的版本号每个版本号至少包含1个修订号。修订号从左到右编号,下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。比较规则:一. 比较版本号时,请按从左到右的顺序依次比较它们的修订原创 2022-06-13 14:18:42 · 959 阅读 · 0 评论 -
链表中的节点每k个一组翻转
将给出的链表中的节点每 k 个一组翻转,返回翻转后的链表如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。双指针确定反转区间,然后反转链表,返回新的头结点,原来的头结点经过反转后就变成了尾节点。每次递归调用,将 k 个节点反转,并返回反转过的新的头结点。...原创 2022-06-09 21:06:54 · 596 阅读 · 0 评论 -
链表内指定区间反转
将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。原创 2022-06-09 18:10:27 · 522 阅读 · 1 评论 -
合并K个已排序的链表
由于代码形参是直接给了一个数组,因此可以把每个节点都当成一个链表,然后通过每两个节点合并,构成新的链表,再与下一个节点合并,就可以实现整体K个链表的合并。但是这种方法会超时,无法ac。因此采用从中间将数组一分为二,直到分成一个个单独节点。最后将单独节点连接起来,得到合并后的K个链表。...原创 2022-06-09 13:34:46 · 277 阅读 · 0 评论 -
【稳住,can win】Python二叉树的遍历
二叉树=>遍历遍历=>二叉树原创 2021-11-12 18:37:25 · 694 阅读 · 0 评论 -
【稳住,can win】Python排序
排序排序方法最坏时间复杂度冒泡排序O(n2)O(n^2)O(n2)选择排序O(n2)O(n^2)O(n2)插入排序O(n2)O(n^2)O(n2)快速排序O(n2)O(n^2)O(n2)希尔排序O(n2)O(n^2)O(n2)归并排序O(nlogn)O(nlogn)O(nlogn)冒泡排序n个数据比较n-1趟,每趟比较次数从n-1逐次减一,每趟确定一个极值。def bubble_sort(data): for j in ran原创 2021-11-12 18:09:00 · 83 阅读 · 0 评论 -
【稳住,can win】Python栈和队列简易实现
栈class Stack(): def __init__(self): self.data = [] def top(self): size = len(self.data) if size <= 0: return return self.data[size - 1] def push(self, e): self.data.append(e) def p原创 2021-11-12 13:29:27 · 537 阅读 · 0 评论 -
【稳住,can win】Python双向链表和单向循环链表
代码实现实现简易版本的双向不循环链表和单向循环链表。定义了头插、尾插、任意位置插入、删除和查找函数接口。双向链表class Node(): def __init__(self, data): self.data = data self.pre = None self.next = Noneclass DoubleLinkList(): def __init__(self): self._head = None原创 2021-11-12 10:22:11 · 670 阅读 · 0 评论 -
【稳住,can win】Python单向链表
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-11-11 13:05:05 · 68 阅读 · 0 评论 -
【阅读理解】手套
问题思路代码实现原创 2021-11-11 09:14:31 · 222 阅读 · 0 评论 -
奇淫巧计之“异或“
异或的特点浅层特点深层特点leetcode算法题举例消失的数字寻找单身狗代码仓库异或的特点浅层特点异或操作无非就是相同取1,相反取0,具体来说,就是比较连个整数的二进制表示形式,按位比较,对应位相同则取0,对应位相反则取1。上述就是比较浅显的认识。深层特点在刚开始学习C语言时,大概都会碰到交换两个数这个算法。其中一种解法就是用异或,代码如下。int main(){ int x = 10; int y = 20; x = x^y; y = x^y; x = x^y; retu.原创 2021-03-28 14:32:01 · 234 阅读 · 0 评论