- 博客(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++算法数据结构学习-获得二叉树的路径力扣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
原创 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++算法、数据结构学习记录-哈希表使用(两数相加,四数相加)
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++学习记录-链表的构成及添加删除操作
链表是一种通过指针串联组成的线性结构,每一个节点由两部分组成,分别为数据域(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
空空如也
已经启动plcsim,但factory io 仍显示未启动
2022-04-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人