leetcode刷题记录

本文精选各类算法题目,包括但不限于二叉树、链表、数组、哈希表、字符串等多种数据结构,涵盖前序遍历、后序遍历、翻转链表、搜索插入位置、岛屿周长等经典算法问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下题目github答案链接

#TitleSolutionBackuplevelrewatch
1二叉树的前序遍历Python递归方法简单,迭代方法需牢记(栈)中等
2二叉树的中序遍历Python递归方法简单,迭代方法需牢记(颜色标记法、栈)中等
3二叉树的后序遍历Python递归方法简单,迭代方法需牢记(栈+结果反转)/颜色标记法中等
4剑指 Offer 33. 二叉搜索树的后序遍历序列Python递归分治、辅助单调栈(看不太懂)中等
5求根到叶子节点数字之和Pythondfs/bfs中等
6二叉树的层次遍历Python队列中等
7二叉树的层次遍历IIPython队列中等
8二叉树的右视图Python层次遍历中等
9二叉树的层平均值Python层次遍历简单
10N叉树的层序遍历Python层次遍历中等
11翻转二叉树Python/java递归简单
12二叉树的锯齿形层次遍历Python层次遍历(队列)中等
13二叉搜索树迭代器Python基于中序遍历中等再看
14合并两个有序链表Python简单
15合并两个链表Python中等
16反转链表Python简单
17合并K个升序链表Python分治(归并)困难其实很简单,先拆分成单个,然后两个两个合并即可,再看下吧
18二叉树中的最大路径和Python递归,注意返回值为root.val+max(l,r)困难比较简单,再看下吧
19从前序与中序遍历序列构造二叉树Python递归中等
20二叉搜索树节点最小距离Python中序遍历简单
21二叉搜索树的最小绝对差Python中序遍历简单和上个题是同一个题
22实现Trie前缀树Python前缀树中等再看
23两两交换链表中的节点Python中等做过相似的题目,感觉不难,可以再看下
24递增顺序搜索树Python中序遍历简单
25二叉搜索树的范围和Python中序遍历简单
26二叉树的直径Python求顶点数量-1更简洁些简单
27填充每个节点的下一个右侧节点指针Python借助next指针/层次遍历中等面试碰到过,再看下吧
28对称的二叉树Python栈/递归简单再看下吧
29从上到下打印二叉树IPythonbfs简单
30从上到下打印二叉树IIPython层次遍历简单
31从上到下打印二叉树IIIPython层次遍历中等
32二叉树中和为某一值的路径Pythondfs中等
33二叉搜索树与双向链表Pythondfs中等再看
34序列化二叉树Python层次遍历/先序遍历困难再看
35二叉搜索树的第k大节点Python中序遍历的逆序简单再看
36二叉树的深度Pythondfs/层次遍历简单
37平衡二叉树Python递归简单
38二叉搜索树的最近公共祖先Python简单再看
39二叉树的最近公共祖先Python上一题中字典方法简单
  1. 数组
#TitleSolutionBackuplevelrewatch
1搜索插入位置Python关于while(left < right) 还是 while(left <= right),到底是right = middle呢,还是要right = middle - 1问题的思考. 优秀解答链接简单回顾对开闭区间的理解
2长度最小的子数组Python滑动窗口中等
3岛屿的周长Python迭代/dfs/bfs简单看下,尤其是最简单的迭代
4螺旋矩阵 IIPython模拟中等
5O(1) 时间插入、删除和获取随机元素 - 允许重复Python数组+哈希表困难再看
6单词拆分 IIPythondfs困难再看
7有效的山脉数组Python遍历简单
8插入区间Python数组合并困难再看
9买卖股票的最佳时机IIPython遍历简单
10距离顺序排列矩阵单元格Python曼哈顿距离简单
11加油站Python技巧型中等再看
12直方图的水量Python两次遍历/双指针困难不难,再看下吧
13翻转对Python归并排序/树状数组(没看懂)困难归并排序经典题目,再看
14三角形的最大周长Pythonsort+两边之和大于第三边简单
15大样本统计Python最大/最小/中位数/众数/平均数中等
16计算质数Python埃氏筛简单再看
17二维数组的查找Python左下角开始,查找值大于当前值往右找,小于往上找中等
18搜索二维矩阵IIPython题目和上题为一个题中等
19杨辉三角Python简单
20翻转矩阵后的得分Python脑筋急转弯中等再看
21区间子数组个数Python两个结果集相减中等再看
22K个不同整数的子数组Python哈希表+两个结果集相减中等再看
23找不同Python位运算/ASCII码和的差/桶计数/哈希表简单
24旋转图像Python中等
25和相同的二元子数组Python前缀和+哈希表 / 找出所有1所在位置中等再看
26分发糖果Python两次遍历困难再看
27较大分组的位置Python一次遍历简单
28旋转数组Python翻转数组/环形替换中等
29可被5整除的二进制前缀Python简单
30缀点成线Python比较斜率/斜率+set/平移过原点+求Ax+By=0简单
31三个数的最大乘积Python排序/线性扫描找出最大三个数和最小两个数简单
32数组形式的整数加法Python简单
33最长连续递增序列Python简单
34寻找数组的中心索引Python简单
35非递减序列Python简单再看,第一次做感觉并不是很简单
36杨辉三角IIPython递归简单
37找到所有数组中消失的数字Python简单再看下
38最大连续1的个数Python简单
39数组拆分IPython简单
40重塑矩阵Python简单
41K连续位的最小翻转次数Python差分数组困难再看
42托普利茨矩阵Python遍历简单
43转置矩阵Python遍历简单
44区域和检索-数组不可变Python前缀和简单
45二维区域和检索Python图形面积变换/哈希表+前缀和+图形面积变化中等
46螺旋矩阵Python遍历中等
47设计停车系统Python遍历简单
48矩阵置零Pythonset/第一行和第一列记录该列/行是否置0中等
49搜索二维矩阵Python中等
50扁平化嵌套列表迭代器Python中等
51接雨水Python遍历获取到当前为止最小值和最大值/双指针/栈困难经典面试题.再看
52下一个排列Python排序中等主要考察排序
53合并区间Python中等
54合并两个有序数组Python简单
55缺失的第一个正数Python困难再看下吧(会的不难)
56跳跃游戏Python中等再看下(自己用了个O(n^2)复杂度,使用O(n)就可以)
57螺旋矩阵IIIPython中等再看下
58给 N x 3 网格图涂色的方案数Python递归困难再看下(用递推法可以很简单,dfs超时)
59剑指offer03:数组中重复的数字Python原地置换/set简单
60顺指针打印矩阵Python简单
61数组中出现次数超过一半的数字Python投票算法/哈希/排序简单投票算法可以再看下
62连续子数组的最大和Python简单
63数组中数字出现的次数Python异或中等
64扑克牌中的顺子Python简单
65队列的最大值Python单调递减队列中等再看下
66圆圈中最后剩下的数字Python推导/模拟简单约瑟夫环问题,再看下
67构建乘积数组Python一次遍历+一个常量 / 两次遍历中等
  1. 链表
#TitleSolutionBackuplevelrewatch
1反转链表Python双指针/递归简单
2环形链表Python双指针中等
3移除链表元素Python双指针简单
4设计链表Python链表的增删查中等
5环形链表IIPython链表技巧型中等
6奇偶链表Python链表拆分中等再看
7对链表进行插入排序Python链表节点插入中等再看
8k个一组翻转链表Python翻转链表困难再看(经典面试题)
9相交链表Python简单
10分隔链表Python一次遍历创建两个链表/两次遍历创建一个链表中等
11旋转链表Python中等
12设计哈希集合Python链地址法/使用一个超大数组简单温习链地址法的使用
13设计哈希映射Python链地址法(和上面题一样做法,在链表节点的构建上加上val即可)/使用一个超大数组简单
14反转链表IIPython分段处理+头插法中等再看
15删除排序链表中的重复元素Python链表遍历/哈希表简单
16删除排序链表中的重复元素IIPython链表遍历/哈希表中等再看
17LRU 缓存机制Python双向链表+哈希表中等经典面试题
18两数相加Python链表中等经典面试题
19重排链表Python链表中等链表合并部分需要看下
20删除链表的倒数第N个节点Python链表+快慢指针中等再看
21两数相加IIPython栈/反转链表/数组存储链表对应位置加和,使用数组进位中等栈的经典应用,再看下
22复制带随机指针的链表Python递归中等第一次见随机指针的处理,再看下
23复杂链表的复制Python递归中等再看下
24两个链表的第一个公共节点Python简单有些技巧性,再看下
  1. 哈希表
#TitleSolutionBackuplevelrewatch
1O(1) 时间插入、删除和获取随机元素 - 允许重复Python数组+哈希表困难再看
2两个数组的交集Python哈希表简单
3有效的字母异位词Python哈希表/数组简单
4赎金信Python哈希表简单
5分糖果Python技巧型哈希简单第一次没做出来,看下吧
6快乐数Python哈希表简单
7两数之和Python哈希表简单
8四数之和IIPythonmap中等再看,第一次没做出来
9存在重复元素IIPythonmap简单
10存在重复元素IIIPython桶+map/树中等再看,有技巧性
11数组中的k-diff数对Python哈希表/双指针中等再看
12分割数组为连续子序列Python哈希表+最小堆/哈希表中等再看
13将x减到0的最小操作数Python累加和+哈希表/双指针中等再看,挺好的题目
14环绕字符串中唯一的子字符串Python哈希表中等再看,很好的题目
15K个不同整数的子数组Python哈希表+两个结果集相减中等再看
16存在重复元素Python哈希表简单
17字母异位词分组Python哈希表中等再看下吧
18单词规律Python哈希表简单
19柠檬水找零Python哈希表简单
20字符串中的第一个唯一字符Python哈希表简单
21环形数组循环Python哈希表中等做出来了,还是比较难的,再看
22串联所有单词的字串Python哈希表/哈希表+滑动窗口困难再看
23同构字符串Python哈希表简单再看,建立字符间映射方法更好
24等价多米诺骨牌对的数量Python哈希表简单
25数组的度Python哈希表简单
26无重复字符的最长子串Python哈希表中等
27森林中的兔子Python哈希表中等
28砖墙Python哈希表中等
29单词的压缩编码Python哈希表/字典树中等字典树需要看下
30猜数字游戏Python哈希表中等
31只出现一次的数字IIPython哈希表中等
32第一个只出现一次的字符Python哈希表简答
  1. 字符串
#TitleSolutionBackuplevelrewatch
1反转字符串Python字符串简单
2反转字符串IIPython字符串简单
3替换空格Python字符串简单
4左旋转字符串Python字符串简单
5实现strStr()PythonKMP/遍历简单KMP经典题目,再看
6重复的子字符串PythonKMP/拼接/遍历简单KMP经典题目,拼接方法也很好再看
7有效的字母异位词Python字典/桶简单
8上升下降字符串Python简单
9分割两个字符串得到回文串Python说不上来什么类型,很有意思的题目中等再看
10Dota2参议院Python中等
11外观数列Python简单
12表示数值的字符串Python中等逻辑比较复杂,面试没遇到过
13反转单词顺序Python简单
  1. 位运算
#TitleSolutionBackuplevelrewatch
1根据数字二进制下 1 的数目排序Python其中一种方法: 位运算+字典简单
2二进制中 1 的个数Python&与操作(n&(n-1))简单
3位1 的个数Python同上简单
4颠倒二进制位Python分治法/逐位反转简单再看
5数组中数字出现的次数 IIPython二进制位1的个数累加和并对3取余中等再看
  1. 栈与队列
#TitleSolutionBackuplevelrewatch
1用栈实现队列Python栈+队列简单有平均复杂度O(1)的方法,之前做的麻烦些,再看
2用队列实现栈Python单队列实现/双队列实现简单
3有效的括号Python简单
4删除字符串中的所有相邻重复项Python简单栈的经典题目,可以再看下
5逆波兰表达式求值Python中等注意下除法结果为负数的情况即可
6滑动窗口最大值Python单调队列困难
7移掉k位数字Python中等再看
8根据身高重建队列Python技巧型中等再看
9132模式Python中等再看
10柱状图中最大的矩形Python困难经典栈问题,再看
11去除重复字母Python困难再看
12不同字符的最小子序列Python栈,和上个题目是一个题困难
13拼接最大数Python遍历+上面题为基础+合并困难再看
14比较含退格的字符串Python栈/双指针简单
15最大矩形Python困难基于柱状图中最大的矩形题目,再看
16栈的压入弹出序列Python中等再看下吧
17包含min函数的栈Python简单
18下一个更大元素IIPython中等再看
19删除字符串中所有相邻重复项 Python栈(更简单)/贪心简单
20基本计算器Python困难再看
21基本计算器IIPython中等再看
22验证二叉树的前序序列化Python中等再看(以前没做过这类题目,不难但是没见过就不会)
23笨阶乘Python中等再看
24最大正方形Pythondp(dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1) / 栈中等
25两数相加IIPython栈/反转链表/数组存储链表对应位置加和,使用数组进位中等栈的经典应用,再看下
26每日温度Python中等
27反转每对括号间的子串Python中等
28最长有效括号Python栈/两次遍历/dp困难再看
#TitleSolutionBackuplevelrewatch
1前k个高频元素Python最小堆/桶排序中等
2最接近原点的k个点Python最大堆/桶排序/直接排序中等再看
3数组中第k个最大元素Python最小堆中等
4重构字符串Python贪心算法+最大堆/计数中等再看
5分割数组为连续子序列Python哈希表+最小堆/哈希表中等再看
6任务调度器Python桶排序/最大堆中等再看
7最后一块石头的重量Python最大堆简单
8寻找两个正序数组的中位数Python最小堆+最大堆/二分查找(还没懂)/双指针遍历困难经典面试题
9数组中第K个最大元素Python最小堆/冒泡排序中等
10前K个高频单词Python哈希表+堆 / 只用哈希表中等
11最小的k个数Python最大堆/排序/冒泡简单
12数据流中的中位数Python最大堆+最小堆困难做出来了
  1. 滑动窗口/双指针
#TitleSolutionBackuplevelrewatch
1无重复字符的最长字串Python双指针+set中等
2有序数组的平方Python双指针简单
3数组中的k-diff数对Python哈希表/双指针中等再看
4最短大于等于K的子数组长度Python双指针中等字节11.27面试真题
5 删除排序数组中的重复项 IIPython双指针中等
6移除元素Python双指针(本人SB似的当遍历值和val相等的时候非要找到下一个不相等的,直接遍历下一个元素就可以了呀)简单看下吧
7三数之和Python双指针中等
8四数之和Python两个for循环嵌套+双指针中等
9按奇偶排序数组IIPython双指针/遍历简单再看
10移动零Python双指针/遍历简单
11直方图的水量Python两次遍历/双指针困难不难,再看下吧
12水果成篮Python双指针中等看心情
13将x减到0的最小操作数Python累加和+哈希表/双指针中等再看,挺好的题目
14翻转字符串中的元音字母Python哈希表+双指针简单
15替换后的最长重复字符Python双指针中等第一次见窗口只会不变或扩大,不会变小.再看
16区间列表的交集Python双指针中等
17长按键入Python双指针/桶简单
18最大连续1的个数IIIPython双指针(只会不变或变长的滑动窗口)中等
19令牌放置Python双指针中等
20替换子串得到平衡字符串Python双指针中等虽然做出来了,代码还是相对复杂些的
21通过删除字母匹配到字典里最长单词Python双指针中等
22合并排序的数组Python双指针简单
22救生艇Python双指针中等
23安排工作以达到最大收益Python排序+双指针中等再看
24最小差Python双指针中等
25单词距离Python哈希表+双指针中等
26统计子串中的唯一字符Python双指针困难再看,比较巧妙,代码很简单
27可见点的最大数目Python数学+双指针困难主要是atan2函数的使用,不难,再看下吧
28乘机小于k的子数组Python双指针/对数的累加和中等双指针求以right索引为结尾的子数组简单,我一开始求的以left开始,不好做.再看下
29推多米诺Python双指针/两次遍历统计每个位置受力情况中等虽然做出来了,但是两次遍历方法值得再看
30删除子数组的最大得分Python双指针中等
31三数之和的多种可能Python哈希表+双指针+分情况中等代码量较大,虽然做出来了,可以再看下
32串联所有单词的字串Python哈希表/哈希表+滑动窗口困难再看
33分发饼干Python排序+双指针简单
34种花问题Python双指针简单再看
35汇总区间Python双指针简单
36滑动窗口中位数Python双指针+二分法困难
37子数组最大平均数IPython双指针简单
38尽可能使字符串相等Python双指针/前缀和+二分查找中等前缀和+二分查找方法还需再看
39可获得的最大点数Python双指针中等
40绝对值不超过限制的最长连续子数组Python双指针+单调队列中等再看(重点看)
41爱生气的书店老板Python双指针中等
42翻转图像Python双指针简单
43盛水最多的容器Python双指针中等
44最大子序和Python双指针/分治简单分治法可以再看
45删除有序数组中的重复项 IIPython双指针中等
46删除链表的倒数第N个节点Python链表+快慢指针中等再看
47最小覆盖子串Python双指针困难再看下吧.难度还好, 就是代码有些复杂
48等差数列划分Python双指针中等
49调整数组顺序使奇数位于偶数前面Python双指针简单
50和为s的两个数字Python双指针简单
51和为s的连续正数序列Python双指针简单再看
#TitleSolutionBackuplevelrewatch
1重构字符串Python贪心算法+最大堆/桶计数中等再看
2有效的字母异位词Python字典/桶简单
3上升下降字符串Python简单
4前k个高频元素Python最小堆/桶排序中等
5最接近原点的k个点Python最大堆/桶排序/直接排序中等再看
6存在重复元素IIIPython桶+map/树中等再看,有技巧性
7最大间距Python桶排序困难再看
8任务调度器Python桶排序/最大堆中等再看
9字符串的排列Python桶排序+不知道算不算的双指针/哈希表+双指针中等再看
  1. 股票问题
#TitleSolutionBackuplevelrewatch
1买卖股票的最佳时机Python遍历简单
2买卖股票的最佳时机IIPython遍历简单
3买卖股票最佳时机含手续费Pythondp(设置sell+buy两个变量,进行dp)中等股票经典问题之一
4买卖股票最佳时机IIIPythondp困难
5买卖股票最佳时机IVPythondp困难再看
  1. 二分法
#TitleSolutionBackuplevelrewatch
1在排序数组中查找元素的第一个和最后一个位置Python二分查找中等
2最长递增子序列PythonDP/贪心+二分查找中等面试高频题目,再看
3尽可能使字符串相等Python双指针/前缀和+二分查找中等前缀和+二分查找方法还需再看
4俄罗斯套娃信封问题Python递增递减排序+二分查找/dp困难再看(LIS变形)
5搜索旋转排序数组Python二分中等再看
6搜索旋转排序数组IIPython二分(左中右相等的情况left+=1,right-=1)中等
7寻找旋转排序数组中的最小值Python二分查找(比较nums[mid]和nums[right])中等
8寻找旋转排序数组中的最小值 IIPython二分查找(nums[left]==nums[mid]==nums[right],则left+=1,right-=1)困难
9在 D 天内送达包裹的能力Python二分查找中等
10平方数之和Python使用pow()函数/二分查找中等
11在排序数组中查找数字 IPython二分查找/哈希简单
120~n-1中缺失的数字Python二分查找简单
  1. DFS
#TitleSolutionBackuplevelrewatch
1将数组拆分成斐波那契序列PythonDFS中等经典dfs+剪枝
2移除最多的同行或同列石头Python并查集/bfs/dfs)中等再看
3课程表Python拓扑排序(入度表+临接表)+bfs / dfs(优化的dfs不太会)中等再看
4课程表IIPython拓扑排序(入度表+临接表)+bfs / 拓扑排序+dfs中等和课程表1思想一样,就是输出拓扑排序
5分割字符串Pythondfs+dp中等可以再看下,做的时候自己没考虑到dp优化
6子集IIPythondfs中等
7全排列Pythondfs中等
8复原IP地址Pythondfs中等
9岛屿数量Pythondfs中等可以再看下,简单
10单词搜索Pythondfs中等
11括号生成Pythondfs中等
12解数独Pythondfs困难再看下吧
13解码方法Pythondfs+去重中等不难,再看下吧
14组合总和IVPythondfs+记忆化搜索中等
15树的子结构Python递归+dfs中等再看
16剑指offer-字符串的排列Pythondfs+剪枝中等再看
  1. BFS
#TitleSolutionBackuplevelrewatch
1单词接龙Python双向bfs/bfs中等再看
2移除最多的同行或同列石头Python并查集/bfs/dfs)中等再看
3课程表Python拓扑排序(入度表+临接表)+bfs / dfs(优化的dfs不太会)中等再看
4课程表IIPython拓扑排序(入度表+临接表)+bfs / 拓扑排序+dfs中等和课程表1思想一样,就是输出拓扑排序
5最小高度树Python拓扑排序+bfs中等再看
  1. 拓扑排序
#TitleSolutionBackuplevelrewatch
1最小高度树Python拓扑排序+bfs中等再看
2课程表Python拓扑排序(入度表+临接表)+bfs / dfs(优化的dfs不太会)中等再看
3课程表IIPython拓扑排序(入度表+临接表)+bfs / 拓扑排序+dfs中等和课程表1思想一样,就是输出拓扑排序
  1. DP
#TitleSolutionBackuplevelrewatch
1不同路径PythonDP中等
2最长上升子序列PythonDP/贪心+二分查找中等面试高频题目,再看
3摆动序列Pythondp/贪心中等再看
4买卖股票最佳时机含手续费Pythondp(设置sell+buy两个变量,进行dp)中等股票经典问题之一
5买卖股票最佳时机IIIPythondp困难
6使用最小代价爬楼梯Pythondp简单
7斐波那契数Pythondp/递归+lru_cache简单
8最长湍流子数组Pythondp/双指针中等再看
9比特位计数Pythondp中等再看
10分割回文串IIPythondp困难再看
11不同的子序列Pythondp困难再看
12最长公共子序列Pythondp(经典dp)中等
13最长回文子串Python双指针/dp中等经典面试题
14爬楼梯Pythondp简单
15正则表达式匹配Pythondp困难再看(经典面试题目)
16编辑距离Pythondp困难经典面试题目
17最大正方形Pythondp(dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) + 1) / 栈中等
18打家劫舍Pythondp中等
19零钱兑换Pythondp中等再看
20跳跃游戏IIPythondp中等
21.丑数IIPythondp+数学中等
22.打家劫舍IIPythondp中等再看
23.最大整除子集Pythondp中等再看
24.把数字翻译成字符串Pythondp/dfs中等稍微看下dp
25.n个骰子的点数Pythondp中等dp想想就混了感觉…
  1. 贪心算法
#TitleSolutionBackuplevelrewatch
1摆动序列Pythondp/贪心中等再看
2单调递增的数组Python贪心中等再看
3无重叠区间Python贪心中等再看
4情侣牵手Python并查集/贪心困难再看
5青蛙过河Python贪心/dp困难贪心
  1. 并查集
#TitleSolutionBackuplevelrewatch
1冗余连接Python并查集/bfs/dfs/拓扑排序中等只会并查集
2交换字符串中的元素Python并查集(一个集合中的元素可以任意交换)中等
3省份数量Python并查集/bfs/dfs)中等
4移除最多的同行或同列石头Python并查集/bfs/dfs)中等再看
5账户合并Python并查集(比较复杂,做出来了,花费时间较多)中等
6连通网络的操作次数Python并查集(线够时连通分量数-1)中等
7由斜杠划分区域Python并查集中等
8情侣牵手Python并查集/贪心困难再看
  1. 分治法
#TitleSolutionBackuplevelrewatch
1至少有K个重复字符的最长子串Python分治法/滑动窗口(没看懂)中等再看
2剑指 Offer 33. 二叉搜索树的后序遍历序列Python递归分治、辅助单调栈(看不太懂)中等
3最大子序和Python双指针/分治简单分治法可以再看
4合并K个升序链表Python最小堆/分治(归并)困难最小堆简单效率高,分治法也很简单,先拆分成单个,然后两个两个合并即可,再看下吧
5排序链表Python分治(归并)中等再看下吧
6数组中的逆序对Python分治(归并)困难经典面试题
  1. 字典序
#TitleSolutionBackuplevelrewatch
1.字典序的第K小数字Python字典序困难再看(面试经典题目)
  1. 数学
#TitleSolutionBackuplevelrewatch
1.阶乘后的零Python数学简单再看
2.整数反转Python数学简单
3.回文数Python数学/转换为字符串简单
4.丑数Python数学简单
5.丑数IIPythondp+数学中等再看下
6.最大数Python自定义排序中等看下吧,自定义排序,感觉应该不会太考
7.把数组排成最小的数Python自定义排序中等和上个题一样
8.字符串相乘Python乘法在计算机中的运算规则中等再看
9.矩形区域不超过 K 的最大数值和Python有序集合困难再看
  1. 常见的排序代码
# 1.快速排序
class Solution:
    def quick_sort(self, array, left, right):
        if left >= right:
            return array
        l, r = left, right
        temp = array[left]
        while left < right:
            while left < right and array[right] >= temp:
                right -= 1
            array[left] = array[right]
            while left < right and array[left] <= temp:
                left += 1
            array[right] = array[left]
        array[left] = temp
        self.quick_sort(array, l, left - 1)
        self.quick_sort(array, right + 1, r)
        return array
        
# 2.归并排序
class Solution:
    def guibing_sort(self, array):
        length = len(array)
        if length < 2:
            return array
        mid = length // 2
        left = self.guibing_sort(array[:mid])
        right = self.guibing_sort(array[mid:])
        res = []
        i, j = 0, 0
        while i < len(left) and j < len(right):
            if left[i] <= right[j]:
                res.append(left[i])
                i += 1
            else:
                res.append(right[j])
                j += 1
        if i < len(left):
            res += left[i:]
        if j < len(right):
            res += right[j:]
        return res
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值