- 博客(33)
- 收藏
- 关注
原创 能打开GitHub,ping竟然显示127.0.0.1,原来是被忽略的steam++
此外在git clone时候如果利用ssh -T git@github.com 来克隆, SSH 连接 GitHub 的 22 端口被拒绝(Connection refused)也是因为steam++的原因。github.com 被错误解析为 127.0.0.1(本地回环地址),而非真实的 GitHub 服务器 IP,导致无法建立连接。竟然是steam++做的,这时我才发现为了不挂梯子平时也可以稳定访问GitHub我习惯将steam++放到后台。而我使用nslookup命令却显示正确的服务器ip。
2025-10-27 11:46:53
366
原创 C++实现简易线程池:理解 function 与 bind 的妙用
本文介绍了C++11多线程编程中std::function和std::bind的使用方法,并展示了两种线程池实现方案。std::function作为通用函数包装器,可以封装各种可调用对象;std::bind则用于参数绑定和函数适配。方案一通过直接绑定参数生成无参任务,方案二利用占位符实现动态参数传递。两种方案均演示了线程的创建、执行和等待过程,为开发者提供了灵活的多线程编程解决方案,帮助提升程序并发性能。文章通过代码示例详细解析了参数传递路径和执行流程。
2025-08-22 16:00:00
1756
原创 Windows上利用ssh连接远程服务器
本文介绍了三种连接远程服务器的SSH工具方法。首先说明Windows 11自带的OpenSSH客户端使用方法,包括基本连接命令和指定端口连接。其次推荐功能强大的MobaXterm远程控制工具,详细说明了其SSH连接步骤和文件上传等特色功能。最后提醒用户可从正规渠道选择Xshell等其他SSH工具,并强调使用开源安全软件的重要性,避免密钥泄露风险。文章还提到VSCode用户可通过Remote-SSH插件实现远程连接。
2025-08-17 01:39:56
1198
原创 动态规划01背包
背包的体积为sum / 2,背包要放入的商品(集合里的元素)重量为 元素的数值,价值也为元素的数值,如果正好装满,说明找到了总和为 sum / 2 的子集。dp[i][j][k] 表示:从前 i 个字符串中挑选,字符 0 的个数不超过 j ,字符 1 的个数不超过 k ,所有的选法中,最大的⻓度。设我们最终选取的结果中,前面加 + 号的数字之和为 a ,前面加 - 号的数字之和为 b ,整个数组。把dp[i - 1]这一层拷贝到dp[i]上,不如只用一个一维数组了,只用dp[j]
2024-08-21 02:45:30
1028
1
原创 动态规划1
从左上角到右下角的过程中,我们需要移动 m+n−2 次,其中有 m−1 次向下移动,n−1 次向右移动。因此路径的总数,就等于从 m+n−2 次移动中选择 m−1 次向下移动的方案数。62中我们已经详细分析了没有障碍的情况,有障碍的话,其实就是标记对应的dp table(dp数组)保持初始值(0)就可以了。需要在计算分子的时候,不断除以分母,防止溢出。所以不用下面这个公式。
2024-08-20 00:36:13
471
原创 贪心算法之重叠区间问题
贪心算法的重叠区间问题包括leetcode:452. 用最少数量的箭引爆气球 435. 无重叠区间 763. 划分字母区间 56. 合并区间
2024-08-15 22:39:23
616
原创 贪心算法2
贪心算法练习2,leetcode包括:122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II 1005.K次取反后最大化的数组和
2024-08-13 22:36:07
168
原创 回溯算法1
和上个题思路基本一样,这个题只使用数字1到9,for循环每层i<=9,path收集每次选取的元素,相当于树型结构里的边,sum来统计path里元素的总和。利用回溯解决问题就是暴力的方法,相当于遍历一颗多叉树,可以画出这颗树方便做题。隐含回溯,相当于以下代码。
2024-08-07 23:41:42
283
原创 二叉树练习6
(左右中)就是天然的回溯过程,要自底向上返回当前的这棵树是否有包含p、q的节点,如果这个节点含有p或q则返回当前这棵树的根节点。二叉搜索树利用中序遍历即为有序,利用双指针可以实现只需要遍历一次即可找到众数。迭代不适合模拟回溯的过程,所以这里只有递归法。几乎和上面递归一样,在迭代法标准模板(本题要自底向上查找,需要回溯处理,而。)中加上上面的方法就行。
2024-08-03 19:03:27
255
原创 二叉树练习5
二叉搜索树的特性,就是如果中序遍历该树,则结点的值是递增的,利用双指针判断是否递增即可。尽量使用原来树的结点修改,不然下面的while里边的if判断会多两种情况。优化则是不用每次新开数组,移动下标就行,在此省略。的处理,把两棵树的结点同时加入队列。详细介绍可看二叉树三种遍历的迭代写法。做过106,105后这个题就很简单。利用栈模拟递归,中序遍历的模板题。前序(中序,后序都是可以的)
2024-08-02 21:56:48
202
原创 二分算法思路及解题代码
同时最小值左侧的值都比右侧的大,根据nums[n - 1]为参照物(或者nums[0]为参照物,但要考虑递增数组的边界情况),最小值左侧的值都大于nums[n - 1],最小值右侧的值小于nums[n - 1]。,可以使用二分算法,就比如求8的平方根,可以把从1到4的数据划分为两个部分,1,2为一组(平方小于等于x),3,4为另一组(平方大于x),所以当mid在左半区间时候,就得移动l指针到mid的位置(mid可能为结果),当mid落到右半区间的时候,移动r指针到mid-1。
2024-08-02 18:57:38
1723
原创 二叉树练习4
利用递减让计数器count初始为目标和,然后每次减去遍历路径节点上的数值。如果最后count == 0,同时到了叶子节点的话,说明找到了目标和,递归主逻辑中找到合适路径立刻返回。利用队列遍历每一层元素标记每一层第一个元素,这个题用迭代很简单,是个层序遍历的模板题。请找出该二叉树的 最底层 最左边 节点的值。所以也可能是右叶子成为树的最左下角。将回溯代码显示出来如下。
2024-08-01 23:46:55
259
原创 二叉树练习3
而不是左结点,如果该节点的左节点不为空,该节点的左节点的左节点为空,该节点的左节点的右节点为空,则找到了一个左叶子。该方法必须找到父结点才能判断子结点,下面提供一种可以通过前序遍历就判断出结点是否是左叶子的方法:利用flag标志。利用后序来求高度,标记-1为不平衡情况。可以利用数学公式快速计算的方法。
2024-08-01 00:54:03
379
原创 二叉树练习2
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。左右孩子都为空的节点才是叶子节点。对称二叉树–>root的左右子树能否互相翻转得到–>左右子树外侧是否对称,内侧是否对称。通过队列(也可以用栈)来判断根节点的左子树和右子树的内侧和外侧是否相等。高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(后序)深度:指从根节点到该节点的最长简单路径边的条数或者节点数(前序)写法3:中序遍历(略有不同):左中左。求的根节点高度来求的二叉树最大深度。写法1:前序遍历:中左右。写法2:后序遍历:左右中。
2024-07-31 00:26:15
495
原创 二叉树练习1
前序是中左右的顺序,把上面的左右代码顺序交换,此时变为中右左,最后翻转一下数组变为左右中即可。把上一个题代码最后数组翻转一下就行,即加一句。中序和后序只需要将1,2,3变换顺序即可。先遍历左路结点后遍历左路结点的右子树。和上面一个代码一模一样。
2024-07-30 02:04:37
250
原创 力扣哈希and双指针练习
在去重操作移动指针时候容易越界,比如数组里都是相同的数字0,0,0……:哈希,因为只有26个小写字母,所以可以用数组当hash表。的不同之处在于前者是有序的可以利用双指针解决。接下来回到三数之和这道题,很容易想到。做这个题之前可以做一下两个数的。方法细节几乎和三数之和一模一样。167题与力扣第一题。
2024-07-23 20:48:36
383
原创 力扣977,8,59
根据暴力方法逐渐改进,先利用 r 指针记录和 sum ,当 sum 大于等于 target 时,移动 l 指针。先创建空间,然后左右指针选择合适的数字放入空间(从后向前),移动指针,直到空间被放满。,计算 sum ,len 等于之前的len和当前窗口的长度的较小值。方法:滑动窗口(双指针)方法:没有,单纯模拟。
2024-07-18 22:24:18
303
原创 pta拆分单链表(带头结点)(c语言)
输入若干个整数,先建立单链表A,然后将单链表A分解为两个具有相同结构的链表B、C,其中B链表的结点为A链表中值小于零的结点,而C链表的结点为A链表中值大于零的结点。请尽量利用原有结点空间。测试数据保证每个结果链表至少存在一个元素。
2023-12-14 17:09:37
604
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅