自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 问答 (1)
  • 收藏
  • 关注

原创 回溯算法的去重问题

在利用回溯算法去求子集、排列、组合等问题时,所给数组中如果包含重复元素,需要进行去重操作。常用的去重方法是使用used数组或集合。对于上述子集、排列、组合等问题的求解方法是将转化为的形式,利用递归和回溯的方法进行求解。去重操作主要处理的是在同一层的数据的重复操作。例如:力扣90题子集问题,将其转换为树的形式以及去重操作示意图如下给你一个整数数组nums,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集包含重复的子集。返回的解集中,子集可以按排列。nums = [0]

2024-07-17 14:04:26 453

原创 网络编程客户端和服务端连接流程

客户端发送connect()连接请求后,并不意味着服务端执行accept后才接收连接,因此connect()返回后不代表进行数据交换。客户端的连接请求首先会存放到listne创建的监听队列中,而accept只是从监听队列中取出连接,不关心连接处于何种状态(比如ESTABLISHED和CLOSE_WAIT),更不关心网络状态的变化。而对于客户端,socket地址是匿名分配的,不需要自己来分配,只需要用connect函数来请求连接,该连接为主动连接。

2024-06-29 11:14:55 414

原创 C++数据结构学习-修剪二叉搜索树

给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值在中。修剪树改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。

2024-06-04 23:48:36 355

原创 c++数据结构学习-BST的节点删除

给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。说明: 要求算法时间复杂度为 $O(h)$,h 为树的高度。

2024-06-04 23:09:53 455

原创 c++数据结构学习-二叉树路经总和

给你二叉树的根节点root和一个表示目标和的整数targetSum。判断该树中是否存在的路径,这条路径上所有节点值相加等于目标和targetSum。如果存在,返回true;否则,返回false。

2024-05-29 22:09:50 368

原创 c++算法数据结构学习-对称二叉树

给你一个二叉树的根节点root, 检查它是否轴对称。true。

2024-05-12 14:27:41 300

原创 c++算法数据结构学习-获得二叉树的路径力扣257

给你一个二叉树的根节点root,按,返回所有从根节点到叶子节点的路径。是指没有子节点的节点。

2024-05-11 23:00:37 322 2

原创 C++数据结构与算法学习:优先队列

1.如果没改变<的含义,那就相当于是优先队列默认模式那就是大根堆,如果改变<的含义,那就相当于改变优先队列默认模式那就是小根堆2.重载大于号会编译报错。

2024-04-18 23:59:57 669 1

原创 c++数据结构和算法学习记录-双指针法-力扣三数之和、四数之和

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?请你找出所有满足条件且不重复的三元组。答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]

2024-04-14 01:00:14 493 1

原创 计算机网络学习笔记-物理层

课程连接] 参考教材:谢希仁 计算机网络(第7版)

2024-04-13 21:08:42 551

原创 c++算法学习记录-力扣459重复字符串(KMP算法)

next[len - 1] = 7,next[len - 1] + 1 = 8,8就是此时字符串asdfasdfasdf的最长相同前后缀的长度。(len - (next[len - 1] + 1)) 也就是: 12(字符串的长度) - 8(最长公共前后缀的长度) = 4, 4正好可以被 12(字符串的长度) 整除,所以说明有重复的子字符串(asdf)。

2024-04-11 00:46:21 762 1

原创 c++算法学习-KMP算法

首先了解下前后缀概念,

2024-04-10 00:47:39 1572 1

原创 计算机网络学习笔记1

计算机网络的最简单的定义是:一些。

2024-04-08 22:48:42 788 1

原创 c++算法、数据结构学习记录-哈希表使用(两数相加,四数相加)

2.定义count为满足条件的数组个数,遍历num3和num4,查询map中是否有满足0-nums3[i]-nums4[j]的元素,存在表示满足条件,count加该元素对应得value值。输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]1.创建map,遍历nums1和nums2,将两两数据的和保存到map中,其中key值为和,value值为次数。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。

2024-04-07 23:13:38 1672

原创 c++数据结构与算法学习记录-哈希表(力扣202题快乐数)

一.哈希表概念哈希冲突**哈希函数**二.哈希结构-集合三.题目描述四.思路五.代码。

2024-04-05 01:08:52 1468 1

原创 c++算法学习记录-力扣142.环形链表2

一.题目二.思路三.代码。

2024-04-03 00:47:51 423 1

原创 c++学习记录-力扣19.删除链表的倒数节点(双指针使用)

一.题目二.思路三.代码。

2024-04-02 16:32:24 194 1

原创 c++数据结构算法学习记录-力扣24.两两交换链表中的节点

一.题目描述二.思路三.代码。

2024-04-01 21:13:50 209

原创 c++学习记录-链表的构成及添加删除操作

链表是一种通过指针串联组成的线性结构,每一个节点由两部分组成,分别为数据域(data)和指针域(next,存储下一个节点的指针地址),最后一个节点的指针域为NULL(空指针)。链表的首个节点为头节点记作head,在链表进行各种增删,查询,遍历操作中会用到,也可以创建一个虚头节点,其指针域指向head来完成链表的各种操作(更加方便)。查询到需要插入位置的前一个位置记作tmp,首先将插入节点的指针域储存tmp下一个位置的地址,之后将tmp的指针域改为插入节点的地址。将尾部节点的指针域储存插入节点的指针。

2024-04-01 17:48:04 582

原创 c++数据结构算法学习:力扣54.螺旋矩阵

如图所示,将四个矩阵的四个角作为判别元素,创建startx,starty作为首行和首列的表示,endx,endy作为末行和末列的表示,每进行一次循环,内侧开始循环,首行、首列+1,末行、末列-1,当startx>endx且starty>endty时循环结束。输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]

2024-03-31 22:56:28 420

原创 算法学习记录-二分法解决搜索插入位置问题力扣35

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-03-30 16:59:33 318

空空如也

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

TA关注的人

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