自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 小爬虫速成记--1

以上方法是只能爬取一页包含的所有图片的内容,要想爬取多页的更多的内容,那只需要把我们最初的那个URL的最后给改改数字,数字几就代表是第几页,当然也是可以找规律的,这个方法就是我们在找我们的目标网址的时候多往下滑一滑,就会出现多个。接着就是我们需要找我们想要的东西的位置,位置在预览–>data–>object_list里面所以在我们题去的时候就有我们的目标了。下面的直接上代码,一些注释掉的代码是老师留下的作业,因为老师的方法最优所以我就换成了老师的方法,把我的方法注释掉了。如果我们这时候直接把我们的。

2024-05-15 20:48:01 1108

原创 HTML的特殊的关系选择器+CSS盒子的学习

弹性盒子是 CSS 的一种新的布局模式CSS 弹性盒是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。

2024-04-29 20:29:42 618

原创 ACWING--1589. 构建二叉搜索树AcWing 1600. 完全二叉树

这个题是对树的遍历进行巩固,这个题用到了树的中序遍历的变形,然后使用层序遍历对树节点的权值进行输出。完全二叉树就是节点的总数等于最后一层最后一个数的标号。

2023-11-08 20:17:07 51 1

原创 树的建立与遍历

树在计算机科学中是一种非常重要的数据结构,常被用于搜索、排序、存储等领域。树的建立可以通过定义节点结构,不断向树中添加新的节点进行。其中,val存放节点的值,left和right分别指向左子树和右子树的根节点。树的遍历有三种方法:前序遍历、中序遍历和后序遍历,分别按照不同的顺序访问树中的节点。其中,前序遍历先访问根节点再访问左子树和右子树,中序遍历先访问左子树再访问根节点和右子树,后序遍历先访问左子树再访问右子树和根节点。

2023-11-07 21:57:18 116

原创 Dijkstra,Floyd,Bellman-Ford

都是求最短路径,但是有一些差别:

2023-08-13 11:02:15 75 1

原创 Bellman-Ford

请你求出从 1 号点到 n 号点的最多经过 k 条边的最短距离,如果无法从 1 号点走到 n 号点,输出 impossible。接下来 m 行,每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。在这里要注意需要备份dist数组,防止出现串联现象,使用刚更新过的节点dist更新了后面的节点。给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。输出一个整数,表示从 1 号点到 n 号点的最多经过 k 条边的最短距离。点的编号为 1∼n。

2023-08-12 16:38:31 40 1

原创 DP自我见解

将牌与牌之间的位置距离摆好,就是确定状态与状态之间的转移方程,将所要要求的骨牌推到,就得到了我们想要的结果。需要强调的是,和骨牌有些区别的是,实际中的转移不应当是看成一个牌对另一个牌的作用,应当看成是该牌前面所有的牌对另一个牌的作用。核心代码dp[i][j]=max(dp[i-1][j],dp[i-1][j+1])+a[i][j]dp[i-1][j](前一层5的最大路径和)dp[i-1][j+1](前一层2的最大路径和)尝试做出定义f[i]为[j]用上前 种花,且到当前为止已经用了 盆花的所有方案数。

2023-08-02 08:03:40 35

原创 刷题小总结

由于屏障作用后使得隔离两侧的哨兵彼此不能看到另一侧,即只能在同一侧内观察,故要试图找出出每个隔离位置前面及后面的防御力,由于屏障的隔离性,选择用一个类似前缀数组,一个类似后缀数组来分别存从1-i每个位置往前看和往后看的防御力值,由于上述式子的限定,其实对于每一个位置,在看的一座较高山后面的较矮山都看不到了,由于从头到目标的前一个位置都要求一个高度递减的单调性,故采用栈结构来存每座山,遍历时每次遇到比当前山矮的山都pop掉,因为该矮山对之后的山根本就没有贡献,这样求一次前缀,一次后缀。

2023-07-14 07:45:35 36 1

原创 刷题总结集

由于队列中下标对应的元素是严格单调递减的,因此此时队首下标对应的元素就是滑动窗口中的最大值。但与方法一中相同的是,此时的最大值可能在滑动窗口左边界的左侧,并且随着窗口向右移动,它永远不可能出现在滑动窗口中了。当滑动窗口向右移动时,我们需要把一个新的元素放入队列中。为了保持队列的性质,我们会不断地将新的元素与队尾的元素相比较,如果前者大于等于后者,那么队尾的元素就可以被永久地移除,我们将其弹出队列。我们需要不断地进行此项操作,直到队列为空或者新的元素小于队尾的元素。当中提供了许多功能强大的。

2023-07-10 17:16:50 39 1

原创 第二天练习

遍历给定的字符串 sss。在遍历结束后,如果栈中没有左括号,说明字符串 sss 中的所有左括号都闭合了,返回 True\text{True}True,否则返回 False\text{False}False。注意到有效字符串的长度一定为偶数,因此如果字符串的长度为奇数,可以直接返回 False\text{False}False,省去后续的遍历判断过程。大致的思路是,倒序遍历nums2,对于某个循环到的数num来说,如果num比这个栈顶元素大,那么这个元素出栈,因为它不可能是num右边第一个比它大的数。

2023-07-06 00:02:55 35 1

原创 第二天练习

遍历给定的字符串 sss。在遍历结束后,如果栈中没有左括号,说明字符串 sss 中的所有左括号都闭合了,返回 True\text{True}True,否则返回 False\text{False}False。注意到有效字符串的长度一定为偶数,因此如果字符串的长度为奇数,可以直接返回 False\text{False}False,省去后续的遍历判断过程。大致的思路是,倒序遍历nums2,对于某个循环到的数num来说,如果num比这个栈顶元素大,那么这个元素出栈,因为它不可能是num右边第一个比它大的数。

2023-07-05 23:53:07 29

原创 第一天解题报告

1.先找第一个字母,并将它们初始化为1(此时dp[0][0],dp[0][2],dp[0][4]为1) 2.从t的第二个字母开始遍历,并初始化num为0,只要遇到dp[i-1][j]>0,代表前一个字符到这里累计的字符数,num需加上dp[i][j],而当t[i]==s[j]的时候,我们将累计的nums赋予dp[i][j]。输出:[2,6,14,11,7,3,12,8,4,13,9,10,5,1]输入:root = [1,null,3,2,4,null,5,6]输出:[5,6,3,2,4,1]

2023-07-04 19:37:52 50

原创 时间复杂度计算

这种情况就是每一步计算后,问题规模就会减小一半,例如在一个长度为n的有序数列中查找某一个数的时候,用折半查找的方法只需要log(2)n次就能找到,再如分治法,一般情况下,在每个步骤把规模减小一倍,所以一共有O(log(2)n)个步骤。计算时间随规模n线性增长,在很多情况下,这是算法可能达到的最优复杂度,因为对输入的n个数,程序一般需要处理所有的数,即计算n次。当n

2023-03-11 15:37:54 119

空空如也

空空如也

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

TA关注的人

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