- 博客(16)
- 收藏
- 关注
原创 LeetCode 排序算法(Python3)
排序算法快速排序快速排序先把第一个数当成基准数,先从右往左寻找比基准数小的数,让s[i]=s[j],然后从左往右寻找比基准数大的数,让s[j]=s[i],最后将所有比基准数小的数放在基准数左边,把所有比基准数大的数放在基准数右边,再用分治法递归调用def quick_sort(s,left,right): if left<right: i,j,tmp=left,right,s[left] while i<j: while i&
2021-03-26 23:20:06 207
原创 LeetCode 栈和队列(Python3)
栈和队列两个栈实现一个队列Q155 最小栈两个栈实现一个队列class Queue: def __init__(self): self.stackA=[] self.stackB=[] def push(self,node): self.stackA.append(node) def pop(self): if self.stackB==[]: if self.stackA==[]
2021-03-26 22:29:03 179
原创 LeetCode 深度优先搜索DFS和广度优先搜索BFS(Python3)
深度优先搜索Q200 岛屿数量 Number of IslandsQ463 岛屿的周长 Island PerimeterQ200 岛屿数量 Number of Islands给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。思路:深度优先搜索因为每次需要遍历一个位置的四个方向(上下左右),那么便先写出一个遍历的函数,该函数作用于一个陆
2021-03-17 22:15:41 379 1
原创 LeetCode 链表(Python3)
Q206 反转链表 Reverse Linked List反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?思路1:while循环迭代迭代的思路是先声明一个为空的rev指针,每一次迭代让a的第一个节点重复指向这个rev指针,这样每次迭代后,第一次是1->NULL,第二次是2->1->
2021-03-16 21:30:35 324 1
原创 LeetCode 动态规划(Python3)
Q70 爬楼梯 Climbing假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。
2021-03-16 21:29:17 420
原创 LeetCode 数组、双指针与哈希表(Python3)
Q1 两数之和 Two Sum给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。思路1:最简单的方法,通过双循环遍历数组直到找到一个合适的解,时间复杂度为O(N2 )class Solution: def twoSum(self,nums,target): sol=[] if len(num
2021-03-16 21:28:48 199
原创 LeetCode 二分法查找 (Python3)
LeetCode Q33-Q35Q33 搜索旋转排序数组 Search in Rotated Sorted ArrayQ34 在排序数组中查找元素的第一个和最后一个位置 Find First And Last Position of Element in Sorted ArrayQ35 搜索插入位置Q33 - Q35 一些笔记Q33 搜索旋转排序数组 Search in Rotated Sorted Array升序排列的整数数组 nums 在预先未知的某个点上进行了旋转(例如, [0,1,2,4,5,
2021-01-30 21:02:54 219
原创 LeetCode Q26-Q31练习笔记 (Python3)
LeetCode Q26-Q30Q26 删除排序数组中的重复项 Remove Duplicates from Sorted ArrayQ27 移除元素 Remove ElementQ28 实现 strStr() Implement strStr()Q29 两数相除 Divide Two IntegersQ30 串联所有单词的子串 Substring with Concatenation of All WordsQ26 - Q30 一些笔记Q26 删除排序数组中的重复项 Remove Duplicates
2021-01-22 11:02:25 207
原创 LeetCode Q21-Q25练习笔记 (Python3)
LeetCode Q21-Q25Q21 合并两个有序链表 Merge Two Sorted ListsQ22 括号生成 Generate ParenthesesQ23 合并K个升序链表 Merge K Sorted ListsQ24 两两交换链表中的节点 Swap Nodes in PairsQ25 K 个一组翻转链表 Reverse Nodes in K GroupQ21-Q25 一些笔记Q21 合并两个有序链表 Merge Two Sorted Lists将两个升序链表合并为一个新的 升序链表并返
2021-01-21 17:03:47 235 1
原创 LeetCode Q16-Q20练习笔记 (Python3)
LeetCode Q16-Q20Q16 最接近的三数之和 3Sum ClosestQ17 电话号码的字母组合 Letter Combination of a Phone NumberQ18 四数之和 4SumQ19 删除链表的倒数第 N 个结点 Remove Nth Node from End of ListQ20 有效的括号 Valid ParenthesesQ16-Q20 一些笔记Q16 最接近的三数之和 3Sum Closest给定一个包括 n 个整数的数组 nums 和 一个目标值 targe
2021-01-20 18:29:05 1052 2
原创 LeetCode Q11-Q15练习笔记 (Python3)
LeetCode Q6-Q10Q11 盛最多水的容器 Container With Most WaterQ12 整数转罗马数字 Interger to RomanQ13 罗马数字转整数 Roman to IntergerQ14 最长公共前缀 Longest Common PrefixQ15 三数之和 3SumQ11 - Q15 一些笔记Q11 盛最多水的容器 Container With Most Water给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标
2021-01-19 12:53:18 279
原创 Python3 对正则表达式(re)的一些理解
正则表达式可以很高效地解决一些问题,这篇文章用来方便自己之后查阅:图片转载:https://www.cnblogs.com/tina-python/p/5508402.html下面这些是flag,可以作为第三个参数存在于正则表达式内主要函数:re.compile(pattern,flags=0)编译出一个可以使用的模板,用法案例:string="xxxxxxxxxxxxxx"r=re.complie("\d")r.findall(string) #返回的是一个列表re.ma
2021-01-18 17:18:59 262
原创 LeetCode Q6-Q10练习笔记 (Python3)
LeetCode Q6-Q10Q6 Z字形变换 ZigZag ConversionQ6 - Q10 一些笔记Q6 Z字形变换 ZigZag Conversion将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGY
2021-01-18 15:25:35 272
原创 LeetCode Q1-Q5练习笔记 (Python3)
LeetCode Q1-Q10Q1 两数之和 TwoSumQ1 两数之和 TwoSum给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。我一开始的解答用了双循环,时间复杂度为O(n2),成功通过def twoSum(nums,target): sol=[] if len(nums)<2:
2021-01-14 21:18:53 344 3
原创 Python学习经验交流(更新)
【python】python目前所学觉得几个重要的知识Python一些笔记Python这是个人学习python中遇到的一些问题,收集起来以供参考一些笔记列表之间是不能直接赋值的,当令list1 = list2时,list1只会使用list2的内存,若想仍存储到不同内存,可以使 list1[:] = list2(相当于创造另一个复制体,不会改变两者的地址),或者令列表内元素单独赋值,如li...
2019-10-24 00:37:08 337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人