刷题
刷题!
友人小A
四级社畜
展开
-
图:DFS
def dfs(graph, node): stack = [] # python list模拟栈,先进后出 visited = set() stack.append(node) visited.add(node) while len(stack): # 弹出最近入栈的结点 cur_node = stack.pop() if cur_node in graph.keys(): neighbo.原创 2021-12-07 11:31:36 · 181 阅读 · 0 评论 -
图:BFS
def bfs(graph, node): queue = [node] # 用数组来表示队列,因为数组和apped和pop取出 visited = set() # 用set集合来存储走过的结点,因为set中元素不重复 visited.add(node) ''' 首先node入队列 取出node结点,将node结点的相邻结点入queue 依次取出第二层的结点,取出相邻结点入queue ''' while.原创 2021-12-07 11:30:40 · 162 阅读 · 0 评论 -
排序:快速排序
def quick_sort(List, start, end): # 递归 # 挑选基准值:从List中挑出一个元素 # 分割:重新排序List,所有比基准值小的元素摆在基准前面,所有比基准值大的元素摆在基准左边 # 递归结束的依据:List的长度为1或0 if start < end: i, j = start, end # 设置基准 base = List[i] while i < j...原创 2021-12-07 11:29:27 · 160 阅读 · 0 评论 -
冒泡排序(python)
## 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可## 将给定数组排序# @param arr int整型一维数组 待排序的数组# @return int整型一维数组#"""给定一个长度为 n 的数组,请你编写一个函数,返回该数组排序后的结果。数据范围: 0 \le n \le 10000000≤n≤1000000,数组中每个元素都满足 0 \le val \le 10000000000≤val≤1000000000要求:空间复杂度 O(n)O(n),时间.原创 2021-11-16 23:54:26 · 543 阅读 · 0 评论 -
NC4 判断链表中是否有环(python)
class ListNode: def __init__(self, x): self.val = x self.next = None### @param head ListNode类# @return bool布尔型#'''判断给定的链表中是否有环。如果有环则返回true,否则返回false。数据范围:链表长度 0 \le n \le 100000≤n≤10000,链表中任意节点的值满足 |val| <= 100000∣val∣&.原创 2021-11-16 17:55:00 · 1008 阅读 · 0 评论 -
CN78.反转链表(python)
# coding=utf-8class ListNode: def __init__(self, x): self.val = x self.next = None## 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可### @param head ListNode类# @return ListNode类#"""给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头。数据范围: n\leq.原创 2021-11-16 16:58:32 · 721 阅读 · 0 评论