整理了出现频率比较高的算法题目,然后在 LeetCode 上,找到我认为写得比较好理解的答案。
建议是多敲敲代码,看答主的解题思路。
有效的括号
给一个字符串,字符串里有(){}[]这六个符号,设计一个算法,判断这些符号是否成对匹配,即要检验这些括号是否都是成对出现的。
链表的倒数第 N 个节点
请写一下冒泡排序和快速排序的代码,时间复杂度是多少?空间复杂度是多少?
冒泡排序:
一次巡回中,如果出现逆序的情况,就交换,一直往后移动直至巡回结束,开始下一个巡回,当没有交换发生的时候则结束。每次巡回的时候最后的元素是最大的。时间复杂度O(N^2)
def bubble_sort(lst):
count = len(lst)
if count < 2:
return lst
for i in range(count):
for j in range(1, count-i):
if lst[j-1] > lst[j]:
lst[j-1], lst[j] = lst[j], lst[j-1]
return lst
def bubble_sort1(lst):
count = len(lst)
if count < 2:
return lst
for i in range(count):
for j in range(i+1, count):
if lst[i] < lst[j]:
lst[i], lst[j] = lst[j], lst[i]
return lst
快速排序
def quick_sort(lst):
if len(lst) < 2: # 基线条件
return lst
else:
base = lst[0] # 递归条件
less = [i for i in lst[1:] if i <= base] # 所有小于 base 的放一组
greater = [i for i in lst[1:] if i > base] # 所有大于 base 的放一组
return quick_sort(less) + [base] + quick_sort(greater)
思路解释:
https://baijiahao.baidu.com/s?id=1617821935743300963&wfr=spider&for=pc
剩余内容,请通过下方获取方式购买后跳转阅读~
获取方式
本专栏内容为付费内容,你可以按照实际需求下单购买,谢谢你的支持~

本文分享了如何在LeetCode上解决常见算法问题,如有效括号匹配和链表倒数第N个节点。还介绍了冒泡排序和快速排序的代码实现以及它们的时间复杂度和空间复杂度。

被折叠的 条评论
为什么被折叠?



