自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《html自用使用指南》--基于w3School实践

rowspan(行重合),colspan(列重合)(table属性):定义跨行或跨列的表格单元格。正常情况下,所有单选框都无选中,若想在默认情况下,让第一个单选框选中。此链接和下面的代码是一样的作用,网页会去寻找name属性为C4的行。(form属性) :指定提交form数据时使用的 HTTP 方法。文本输入时,在编辑器中的换行,多个空格,都被编辑器看作一个空格。嵌套列表(没什么可说的,根据上面的套娃就可以了)左边的列实现导航,其内部实现是多个链接,右边。的距离(border决定的是外边界的粗细)

2024-04-23 21:19:53 785

原创 day32|C++|贪心|122. 买卖股票的最佳时机 II|55. 跳跃游戏| 45. 跳跃游戏 II

假设nums[0]为3,说明可以跳1,2,3步,究竟选择哪一步并不重要,但明确此时的最大跳跃范围很重要,之后不断延申最大范围,若范围能覆盖最后一位,则成立。每一轮我们都要跳一次,可以得到一次当前的最大范围,计数一次,当i走完此时的最大范围,得到一个新的最大范围,再计数一次,直到覆盖到最后一个数。时刻保持最优是本题的关键,后一天减前一天的差值是利润产生的核心,因此当差值大于0时计入res中。

2024-03-28 15:49:11 324

原创 day31|leetcode|C++|贪心|455.分发饼干|376. 摆动序列|53. 最大子数组和

局部最优解,是一种感觉。

2024-03-26 20:22:39 315

原创 day29|leetcode|C++|491. 非递减子序列|46. 全排列|47. 全排列 II

设置bool数组记录当前位置数是否已经使用过,若使用过直接跳过。

2024-03-24 22:51:53 363

原创 day28|93. 复原 IP 地址|Leetcode 78. 子集|90.子集II

【代码】day28|93. 复原 IP 地址|Leetcode 78. 子集|90.子集II。

2024-03-21 18:34:23 294

原创 day27|leetcode|C++| 39. 组合总和 | 40. 组合总和 II |131. 分割回文串

人生匆匆百年,如梦幻泡影。人活在这个世界上是为了什么?无非是走上一遭见证精彩罢了。我虽然不想死,但却不畏惧死亡。我已走在路上,纵死不悔。

2024-03-18 19:48:08 439

原创 day25|leetcode|C++|216. 组合总和 III|17. 电话号码的字母组合

知者行之始,行者知之成 --传习录。

2024-03-17 15:17:53 316

原创 day24|Leetcode|77.组合

递归与回溯是算法的核心,递归到每一层,在这一层for循环不断(操作,再回溯)

2024-03-16 22:59:20 203

原创 day23|leetcode|C++|669. 修剪二叉搜索树|108. 将有序数组转换为二叉搜索树|538. 把二叉搜索树转换为累加树

对于一棵二叉搜索树,其中序遍历为从小到大递增,那么我只要逆中序遍历即为由大到小,那只要我在此遍历途中累加全局变量num的值,再把num加到val上即可。当 当前节点小于目标范围时,说明包括其及其左子树全部部分均小于目标范围,所以将其右子树(满足条件的部分,这里使用递归)移到当前节点位置即可。当 当前节点大于目标范围时,说明包括其及其右子树全部部分均大于目标范围,所以将其左子树(满足条件的部分,这里使用递归)移到当前节点位置即可。当满足条件时,直接向下递归即可。

2024-03-15 17:46:25 229

原创 day22|leetcode|C++|235. 二叉搜索树的最近公共祖先|701. 二叉搜索树中的插入操作|450. 删除二叉搜索树中的节点

今朝剑指叠云处,爱蛊爱人还爱天。

2024-03-14 21:37:14 202

原创 day21 |c++|leetcode|530. 二叉搜索树的最小绝对差501.二叉搜索树中的众数| 236. 二叉树的最近公共祖先

二叉搜索树找第一第二大值的差值,使用中序遍历,由于要记录倒数第二大的值,考虑设置全局变量。,时刻记录上一次递归的值。和前一题思路大致相同。

2024-03-12 21:27:47 446 1

原创 day20|C++|Leetcode|654. 最大二叉树| 617. 合并二叉树| 700. 二叉搜索树中的搜索|98. 验证二叉搜索树

本题我的第一想法是采用层序遍历,两个二叉树同时遍历,将第二个二叉树值加到第一个二叉树上,但我在思考当两个二叉树遍历到某个位置第二个二叉树有值,第一个二叉树为空时该怎样为第一个二叉树遍历处开辟空间犯了难,新位置部分每个节点都要开辟空间,求助gpt后发现直接把。PS:本题也可以直接建立两个栈。二叉搜索树中,中序遍历为升序。

2024-03-11 21:55:43 427 1

原创 day 18|leetcode|C++|513. 找树左下角的值| Leetcode 112. 路径总和| Leetcode 106. 从中序与后序遍历序列构造二叉树

其实dfs的精髓就在于递归函数的参数设置和这些参数在单次递归中的操作,注意部分参数的设立是为了方便递归的进行,这些参数是随着函数的逐步递归而不断变化的。

2024-03-10 16:07:51 332 1

原创 day 17|leetcode|C++|110. 平衡二叉树|257. 二叉树的所有路径|404. 左叶子之和

既然我们要判断所有的二叉树的左右子树的高度差,我们采用后序遍历,从左下逐个开始遍历,记录左右子树高度,并返回max(num1, num2)+1,并逐层封装返回上层,本题基本思路和求最大深度基本相同,多了判断高度差而已。一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。

2024-03-09 20:36:52 304

原创 day16|leetcode|C++|二叉树DFS|104.二叉树的最大深度|111.二叉树的最小深度|222.完全二叉树的节点个数

本质是每轮确定一个节点,若其左右子树都为满二叉树,直接返回,反之则进行递归。如果根节点的左子树深度等于右子树深度,则说明。如果根节点的左子树深度大于右子树深度,则说明。:仍然是后序遍历,不过处理了。

2024-03-07 12:43:38 469 1

原创 day 15|二叉树|leetcode|C++|107. 二叉树的层序遍历 II|Leetcode 199. 二叉树的右视图| 226. 翻转二叉树

迭代法中,由于栈具有存储特性,所以压在栈底的根节点右孩子长串在经历一段时间后还是会被调用。,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。层序遍历:逐层遍历,需要借助队列实现。

2024-03-06 21:49:26 1129 1

原创 day13|leetcode|C++||队列|239.滑动窗口最大值|347. 前 K 个高频元素

单调队列的实际应用仍不熟练,好在对大的逻辑有了更深的理解,继续加油。

2024-03-04 19:01:06 816 1

原创 day11|leetcode|栈与队列|C++|20. 有效的括号|1047. 删除字符串中的所有相邻重复项|150. 逆波兰表达式求值

今日题目较易,多多感悟栈的奥妙。

2024-03-02 11:45:30 941 1

原创 day10|leetcode|C++|栈与队列|Leetcode 232. 用栈实现队列|Leetcode 225. 用队列实现栈

栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈,也(iterator)。不像是set 或者map 提供迭代器iterator来遍历所有元素。**栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。**也就是说栈不是容器,而是容器适配器(container adapter)。栈的底层实现可以是vector,deque,list 都是可以的。队列中先进先出的数据结构,同样不允许有遍历行为,不提供迭代器,

2024-03-01 16:03:55 1347 1

原创 day9|KMP算法|C++|Leetcode 28. 找出字符串中第一个匹配项的下标

KMP有点难理解,明天继续写另一道,加油!

2024-02-29 20:26:47 1146 1

原创 day8|C++|Leetcode|卡码网|字符串|344.反转字符|541.反转字符串 II|卡码网:54.替换数字|151.翻转字符串里的单词|卡码网:55.右旋转字符串

双指针交换,在两端设置两个指针left和right,交换两指针位置处的数,之后left左移,right右移,之后再次交换,重复操作直到left和right交会。

2024-02-28 23:41:16 935

原创 第7天|哈希表|C++|Leetcode|454.四数相加II|383.赎金信|15.三数之和|18.四数之和

今日用时3小时😊加油,三数之和的去重操作值得细细品味,懂得了用双指针三数之和的核心,之后n数之和的操作只不过是for的叠加。

2024-02-27 22:26:48 1237

原创 第5天|哈希表|C++|Leetcode|242.有效的字母异位词|349.两个数组的交集|202.快乐数|1.两数之和

此基础是我根据网上的内容和自己写的结合的。

2024-02-26 14:49:14 1918 1

原创 代码随想读第4天|C++|leetcode|24.两两交换链表中的节点|删除链表的倒数第N个节点|面试题 02.07. 链表相交|142.环形链表 II

昨日由于写的太晚没有上传,对于递归仍然不能独立写出,需要多加总结练习。

2024-02-25 15:22:00 2487 1

原创 代码随想录第3天|C++|链表|leetcode|203.移除链表元素|707.设计链表|206.反转链表

链表的定义:基本操作复杂度分析:题目链接:203. 移除链表元素思路:本题是移除无头结点链表中所有指定val大小的元素,有两种思路(有无头结点都可使用1或2思路)1是通过创建临时变量temp存储将要删除的元素2是通过两个指针p,q动态移动,删除指定元素难点:由于无头结点,需要分开考虑最前面head为val和一般情况下中间值为val两种情况,以1思路为例:处理头指针时,当当前轮次前面head不为空且为val时才能删除head;处理中间值时,head位置已经确定,设current为head,若head后还有

2024-02-23 22:42:03 2338

原创 代码随想录第2天|LeetCode 977有序数组的平方||209 长度最小的子数组||59 螺旋矩阵 II

注:双指针(滑动窗口)的思路是暴力解思路的简单优化,就是找所有的可能组合,但1. 滑动窗口可以实时的用两个指针维护结果,而暴力双for需要不断重新计算sum。:1. 考虑到数组可能有负数有正数,它们的平方的大小都是从两边到0逐渐减小,所以可以设置两个指针从两边到中间运动,不断判断指针位置处两个数的大小,将较大的数从后往前放入数组res中。l,r之间的数组*恰好不满足target,r继续右移,每完成一轮r,l指针移动得到的连续子数组就是所有组合中的一组,通过一个数minLen记录最小长度。

2024-02-22 20:08:11 1940 1

原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

1.暴力:前移的过程中,要考虑到下一轮只需要new_len这个范围即可,同时也要记得重新判断。target<nums[mid]情况下,r=mid-1还是r=mid:依然是取决于提供的。2.双指针:快指针遍历数组,每找到非val的元素就将慢指针位置元素覆盖,直到全部遍历。1.暴力:每找到一个目标值val,在其后的所有值全部前移一位,直到全部遍历。中,如果在,返回对应的数组下标;2.双指针:注意慢指针最后的位置就恰好是新数组的大小。,当为左闭右开时,r=mid,因为右边取不到。是存在的,有意义的;

2024-02-21 11:34:37 2297 3

原创 1.2操作系统的发展与分类

缺点:缺少人机交互功能,提交作业之后只能等待输出,eg:无法调试程序/在运行过程中不能输入参数。缺点:由于操作系统对各个作业/用户都是平等的,会导致一些紧急任务不能被优先处理。4. 实时操作系统:能够优先响应一些紧急任务,分为硬实时。3. 分时操作系统:计算机以时间片为单位轮流为各个。其要求要在严格的时限内处理完事件。服务,解决了人机交互问题。紧急任务不能被优先处理。

2023-10-03 21:31:46 13

原创 2-STL初识

//这里val的类型由你选择输入的数据决定。for_each( v.begin() , v.end() , print )//print为函数名。Stl(标准模板库)六大组件为容器,算法,迭代器,仿函数,适配器,空间配置器。外层的迭代器it解引用后为内层小容器vector vit;//通过迭代器访问容器中数据(在初期迭代器可看做指针)Vector v;v为大容器,在v中存储的是小容器。

2023-09-18 19:33:34 36

原创 c++初级学习:类模板的相关知识

类模板中的成员函数被调用时才会创建,你的类模板头文件不会去找函数声明对应的函数体(.cpp文件中)。正常函数此时已经链接到了自己的函数体,之后就可以正常使用,最后类模板的函数声明在调用阶段.h文件找不到自己的函数体。类外:如果全局函数是在类外实现,需要让编译器提前知道这个函数的存在,故函数体需要放在文件头,而由于函数体中有person类参数,故还需在最前创建person类声明。(类中)friend void print<> (person<T>&p) {};函数类型 类名<T>::函数名(参数){…

2023-09-16 17:21:58 22

空空如也

空空如也

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

TA关注的人

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