- 博客(5)
- 收藏
- 关注
原创 Leetcode#5——最长回文串
解题思想1.中心扩展法从字符串中心分别往左右两端移动, while l>=0 r<n s[r]=s[l]易混点: 回文串的起始值 = i-(循环中回文串的长度-1)//2 看不懂找数带入即可 class Solution: def longestPalindrome(self, s: str) -> str: n = len(s) def getlen(l,r): while l>=0 and
2020-06-06 15:30:50 111
原创 详解-LeetCode #98
98 ——验证二叉搜索树考察内容:二叉搜索数性质- 左<根<右递归中序遍历解题思路:递归1.如果当前节点为空,满足——True2.如果该节点大于上界或小于下界——F3.继续判断该节点左(右)节点,若节点小(大)于根节点—T```pythonclass Solution: def isValidBST(self, root: TreeNode) -> bool: def helper(node, lower = float('-inf'),up
2020-06-05 15:13:43 149
原创 详解LeetCode #15
LeetCode 15 ——三数之和考察思想:双指针解题思路:1.设置左右指针 L,R ,当前数为 i2. 设置空数组 res 来存放满足条件的三数之和3. 将 数组进行sort, 因此 ,当num[i]>0时 即已不存在满足条件的三数4. 若num[i] = num[i-1] ,即遇到重复数字,countiue下一数,移动左右指针 若三数之和大于0,则将num[R]像后移动一位,若小于0 则将num[L]像前移动一位。若等于0,将三数加入res中,并判断左 右指针的下一位是否重复,重复则跳
2020-06-05 11:18:15 279
原创 十大排序算法——快速排序,冒泡排序
1.冒泡排序2.快速排序1.冒泡排序(Bubble Sort)是一种简单直观的排序方法,它需要过要排序的数列,一次比较两个元素,直至走访到序列全部正确,即排序完成。算法步骤简单的说就是始终将较大的数放在右边。python代码实现:def bubbleSort(arr): for i in range(1, len(arr)): for j in range(0...
2020-04-15 10:28:06 1682
原创 e二分查找——python
1.二分查找1.定义 二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。def binarySearch(arr...
2020-04-14 11:06:05 512
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人