自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 leetcode:环形链表2

如果我们从head开始计算步数,走到环形入口处需要走a + nb 步,此时slow已经走了nb步了,那么它再走a步就一定停在了环形入口处,但是这个a怎么算呢?我们只需要在此时将fast置于head处,与slow同速走,两者相遇时,就找到了我们要找的节点。1、两者没有相遇,fast或者fast.next不存在,说明无环。两式计算可得:fast = 2nb slow = nb。(此处设直线区域的节点数为a,环形区域的节点数为b),返回链表开始入环的第一个节点。也就是说slow走了nb步。

2023-10-26 17:30:32 80

原创 leetcode:多数元素

你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。哈希表:collections.Counter()

2023-10-26 16:21:04 72

原创 leetcode:相交链表

方法一:利用哈希表,遍历一次headA,将其节点存储到哈希表中,再遍历一次headB,比较B中的节点是否已经在哈希表中。,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回。方法二:栈,从后往前遍历两个链表,第一个不相等的节点就是我们要的结果。给你两个单链表的头节点。

2023-10-23 17:50:27 73

原创 leetcode:二叉树的后序遍历

给你一棵二叉树的根节点。

2023-10-23 17:40:23 60

原创 leetcode:二叉树前序遍历

其实与方法一一样,只是将方法一中的栈显式地模拟出来。

2023-10-23 16:47:27 32

原创 leetcode:环形链表

定义两个指针,慢指针指向head,快指针指向head.next。慢指针一次走一步,快指针一次走两步。此处之所以不像龟兔赛跑算法那样将快慢指针都设置在head,是因为都设在head,下面的while就不会执行。当快慢指针再次相遇时,就能说明该链表中一定有环。方法一:哈希表:利用一个哈希表来存储已经访问过的所有节点,每次我们到达一个节点时,判断该节点是否已经存在于哈希表中,如果在说明有环,如果不在,说明没有环,直到遍历完所有节点。指针再次到达,则链表中存在环。,判断链表中是否有环。给你一个链表的头节点。

2023-10-23 11:15:38 37

原创 leetcode:验证回文串

方法一:双指针:指针left、right分别指向字符串s的左右两侧,如果left = right 那么left+1, right-1,直到两者相遇,返回True。若不相等,则返回False。在原字符串上直接判断:同样使用双指针,但是是直接在原字符串上进行判断,每次将指针移动到下一个字母字符或数字字符,再判断这两个字符是否相等。如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个。字母和数字都属于字母数字字符。

2023-10-23 10:44:58 45

原创 leetcode:买卖股票

遍历一次prices,找到那个历史最低点,然后每一天都考虑今天卖出股票的话,我能挣多少利润,当考虑完所有天数后,就得到了最佳结果。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。买入这只股票,并选择在。

2023-10-23 10:24:12 43

原创 leetcode:杨辉三角2

在「杨辉三角」中,每个数是它左上方和右上方的数的和。,返回「杨辉三角」的第。

2023-10-19 11:13:25 93

原创 leetcode:杨辉三角

第n行的第i个数,由第n-1行的第i-1个数和第i个数求和得到的。在「杨辉三角」中,每个数是它左上方和右上方的数的和。生成「杨辉三角」的前 numRows。给定一个非负整数 numRows。

2023-10-19 11:05:05 95

原创 leetcode:路径总和

的路径,这条路径上所有节点值相加等于目标和。和一个表示目标和的整数。广度优先搜索:(队列)

2023-10-18 17:37:04 54

原创 leetcode:计算二叉树的最小深度

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。给定一个二叉树,找出其最小深度。

2023-10-18 16:50:48 37

原创 leetcode:判断平衡二叉树

题目:给定一个二叉树,判断它是否是高度平衡的二叉树。

2023-10-18 16:35:05 42

原创 leetcode:将有序数组转化为二叉搜索树

给定一个有序数组,将其转化为树,也就是说这个有序数组是二叉树的中序遍历,但是仅凭中序遍历我们无法确定二叉树,加上高度平衡,答案不唯一,但是范围很小。如果遍历序列为偶数,就会有三种选择,mid的左边和右边以及任意选择一个节点,之后同样递归选择。如果中序遍历为奇数,那么我们只能选择最中间的数字作为根节点,再之后递归地进行选择根节点。二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。需注意,当left>right时,该二叉树为空。排列,请你将其转换为一棵。

2023-10-18 16:00:12 161

原创 leetcode:求二叉树的最大深度

递归:若已知一棵树的左子树和右子树的深度,那么这棵树的深度为max(left, right)+ 1。那么我们也可以用深度优先遍历递归地计算左子树和右子树的深度。是指从根节点到最远叶子节点的最长路径上的节点数。

2023-10-18 15:32:04 47

原创 leetcode:对称二叉树

left.left和right.right,left.right和right.left。当left的值与right的值不相等时。当left或者right有一个为空时。题目:给你一个二叉树的根节点。当left和right都为空时。, 检查它是否轴对称。

2023-10-17 16:39:33 35

原创 leetcode:中序遍历二叉树

题目:给定一个二叉树的根节点。

2023-10-13 21:15:12 96 1

原创 leetcode:合并数组

将两个数组看作两个队列,每次从队列头部取出较小的那个放入结果中。中,使合并后的数组同样按。

2023-10-13 21:03:34 211 1

原创 leetcode:删除顺序链表中的重复元素

删除所有重复的元素,使每个元素只出现一次。题目:给定一个已排序的链表的头。

2023-10-12 20:41:37 62

原创 leetcode:爬楼梯

从第0个台阶开始爬,假设爬到第n个台阶有f(n)种方法,因为每次只能爬一个或者两个,所以有f(n-1)+f(n-2)=f(n)我们从第0个台阶爬到第0个台阶和第1个台阶,都是只有一种爬法,故而有f(0)=f(1)=1。你有多少种不同的方法可以爬到楼顶呢?

2023-10-12 20:29:43 71

原创 leetcode:求x的算术平方根

计算机无法存储浮点数的精确值,但是指数函数和对数函数的返回值都是浮点数,因此结果会有误差,当x足够大时,会因为这部分误差导致结果错误,因此在得到结果的整数部分ans后,我们还应该确认ans和ans+1哪一个才是真正的答案。将根号x转换为指数函数exp和对数函数ln。题目:给你一个非负整数。

2023-10-12 19:41:01 68

原创 leetcode:二进制求和

在第一轮的计算中,ans的最后一位是x和y相加后的结果,carry的倒数第二位是x和y最后一位相加的进位。接下来每一轮中,由于carry是由x和y按位与并且左移得到的,那么最后会补零,不会影响后面的计算。当进位不为0时,保存x和y的无进位结果:answer = x ^ y。计算当前x和y的进位:carry = (x & y)<< 1。将a和b转化为整数x,y,之后由x保存结果,y保存进位。更新x和y的值,x=answer, y = carry。,以二进制字符串的形式返回它们的和。返回x的二进制形式即可。

2023-10-10 16:42:04 53 1

原创 leetcode: 只出现一次的数字

异或运算:所有数字和0异或结果为原数字,和自己异或结果为0,异或运算满足结合律和交换律。,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。故而让数组中的所有数字进行异或,结果就是只出现了一次的数字。

2023-10-10 15:58:52 23 1

原创 leetcode: 加一

考虑最后一位是否为9,如果不是9,直接加一 ,返回dig即可,如果是9,将其变为0,再考虑前一位是否为9,以此类推,直到第一位,如果dig[0]也是9,那么返回[1]+dig即可。数组所表示的非负整数,在该数的基础上加一。

2023-10-10 15:15:25 63

原创 leetcode:搜索插入位置

题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

2023-10-10 14:57:43 55

转载 leetcode:最后一个单词的长度

split()方法通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串。str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。strip() 方法用于移除字符串头尾指定的字符(默认为空格)。,由若干单词组成,单词前后用一些空格字符隔开。str指的是字符串头尾指定的字符。题目:给你一个字符串。num – 分割次数。

2023-10-10 14:47:57 40

Lession2-week1.zip

Lession2-week1.zip

2022-09-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除