leetcode刷题笔记
文章平均质量分 71
The Crooked Man
这个作者很懒,什么都没留下…
展开
-
leetcode排序算法
按时间复杂度划分:a. O(n2)的性能:插入排序>选择排序>冒泡排序选择排序也不稳定对于大规模的乱序数组的排序,可以使用希尔排序(也不稳定)b. O(nlogs)快速排序,如果分区点选的不够对的话,可能会降到O(n2)归并排序在任何情况下的时间复杂度都是O(nlogn),虽然时间复杂度很稳定,但是需要的空间复杂度大。快速排序的空间复杂度为O(logn),接近于常数快速排序不稳定,归并排序稳定c.O(n)的要求比较苛刻桶排序,要求桶与桶之间有序,元素均匀地划分到桶中计数排序,.原创 2021-08-24 16:52:11 · 296 阅读 · 0 评论 -
leetcode位运算
1.位运算&与|或^异或~取反<<左移">>"有符号右移">>>"无符号右移2.有符号整数和无符号整数0000 1010 正数1000 1010 负数第一位为符号位,正数的符号位为0,负数的符号位为1byte 8位 short 16位 int 32位 long 64位 -->有符号整数整数一般使用补码表示3.原码、反码、补码原码10: 00000000 00000000 00000000 00001010-10: 1原创 2021-08-21 20:11:00 · 594 阅读 · 0 评论 -
Leetcode之二叉树
144.二叉树的前序遍历先遍历树的根节点,然后遍历树的左节点,然后遍历树的右节点。class Solution: def preorderTraversal(self, root: TreeNode) -> List[int]: res = [] def dfs(root): if not root: return None res.append(ro原创 2021-08-08 15:29:29 · 303 阅读 · 0 评论 -
Leetcode矩阵
leetcode73.矩阵置零给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。思路:该题的解法,主要是设置一个标记,如果矩阵中某个元素的值为0,标记该行或列。如何标记该行或列?我们从新定义了两个数组,一个代表哪一行是否有0,一个代表哪一列是否有0.具体做法为,首先遍历一边二维数组,找出0元素,标记其行和列。再遍历一遍数组,看它的标记是否满足行或列之一,若满足其中之一即可把该元素置0.def setZeros(matrix):原创 2021-08-06 14:44:52 · 212 阅读 · 0 评论 -
Leetcode笔记之字符串
125.验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。要注意的是大小写字母的转换以及过滤掉除了字母和字符串之外的字符。.isalnum()判断是否是数字或者字符串.lower()是把大写字母转化为小写字母class Solution: def isPalindrome(self, s: str) -> bool: left = 0 num = []原创 2021-08-05 17:50:53 · 85 阅读 · 0 评论 -
leetcode中与哈希表有关的题
关于哈希表,你该了解这些!242.有效的字母异位词1002.查找常用字符349.两个数组的交集202.快乐数1.两数之和454.四数相加II383.赎金信15.三数之和18.四数之和哈希表:总结篇!作者:carlsun-2链接:https://leetcode-cn.com/problems/find-common-characters/solution/1002-cha-zhao-chang-yong-zi-fu-ha-xi-fa-jing-dian-/来源:力扣(LeetCod原创 2021-08-05 15:12:39 · 113 阅读 · 0 评论 -
Leetcode刷题笔记
163.缺失的区间def findMissingRanges(nums,lower,upper): low = lower-1 nums.append(upper+1) res = [] for num in nums: diff = num - low if diff == 2: #nums[i]-nums[i]==2时,说明中间只跨了一个数,所以把这个数字单独作为一个区间 res.append(str(nu原创 2021-08-05 09:56:37 · 289 阅读 · 0 评论