自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨的博客

C++编程,数据结构和算法。

  • 博客(246)
  • 收藏
  • 关注

原创 【一】【socket聊天室】-多线程,socket编程

(1)多用户聊天:一个服务器多个客户端,客户端信息显示在公共的服务端窗口,利用多线程实现; ——客户端双线程:一个接受线程一个发送线程(主线程); ——服务器单线程:接收线程;(2)多用户广播界面:将信息显示到所有用户界面和服务器界面,同时服务器也能发言,利用多线程实现; ——客户端双线程:一个接受线程一个发送线程(主线程); ——服务器单线程:一个接收线程(主线程)一个发送线程;其中接受线程为每个连接开了单独的线程;

2023-03-08 03:07:15 5157 3

原创 【每日一题】885. 考场就坐

遍历整个set,找出最优位置

2022-12-30 14:02:17 945

原创 【随想录】-【8 回溯算法】【子集问题】491 递增子序列

注意去重逻辑不一样:这个事先不能排序,所以不能使用i>start&&num[i]==i-1; ——为了记忆断开的使用情况,如[1,2,1,1],需要使用一个used记录使用情况;(2)注意:需要使用所有子集,不能return,每次都需要接着来;...

2022-08-27 21:22:54 284

原创 【随想录】-【8 回溯算法】【子集问题】90 子集Ⅱ

去重:有重复数字数组,每个数字取一次,利用used数组或i>start树层了去重即可;

2022-08-21 22:10:39 206

原创 【随想录】-【8 回溯算法】【子集问题】78 子集

(1)解决方法同组合问题,不过每个子节点都要记录为解而已;(2)子集问题:等价于两种组合问题,不重复集合,每个取一次;重复集合,每个取一次;(3)注意终止条件;

2022-08-21 22:02:38 97

原创 【随想录】-【8 回溯算法】【组合问题】40 组合总和Ⅱ

(1)组合问题,子集问题,排列问题,棋盘问题,切割问题;(2)组合问题:从N个数里面挑选满足条件的k个;(3)for循环分布:背包内物品外组合,背包外物品内排列(兑换零钱);(4)组合问题: ——数组中无重复元素:使用一次(startIndex设为i+1即可,注意剪枝path.size和sum);不限次使用(startIndex设为i,用来去重,剪枝sum); ——有重复元素:肯定只使用一次,用used进行树层去重,只能是树层去重,不能树枝

2022-08-19 17:46:57 168

原创 【随想录】-【8 回溯算法】【组合问题】39 组合总和

重点:(1)组合问题:N个数里面挑出满足条件的k个数;(2)回溯法解决问题:组合问题,切割问题,子集问题,排列问题,棋盘问题;(3)for循环分布:背包内物品外组合,背包外物品内排列:(4)重点是:如何实现重复使用元素,以及去掉重复的组合; ——设置startIndex为当前的i,然后终止为candidate.size,这样就不用往回找;(5)参数不能递减target,而应该设置sum与其比对;

2022-08-19 16:36:58 123

原创 【随想录】-【8 回溯算法】【组合问题】77 组合

(1)组合问题:N个数里面挑出满足条件的k个数;(2)回溯法解决问题:组合问题,切割问题,子集问题,排列问题,棋盘问题;(3)for循环分布:背包内物品外组合,背包外物品内排列;(4)注意判断递归深度和宽度各代表什么。对于此问题,每次从startIndex开始,到n结束;(5)注意剪枝:当n-startIndex不够k-path.size时,可以提前停止;

2022-08-19 16:01:52 295

原创 【随想录】-【8 回溯算法】回溯算法理论基础

(1)深搜:递归和栈实现,先中后序遍历;广搜:队列实现,层次遍历;(2)回溯的本质是穷举,即暴力搜索(BFS和DFS),所以效率不高;(3)回溯法解决问题:组合问题,切割问题,子集问题,排列问题,棋盘问题;(4)for循环分布:背包内物品外组合,背包外物品内排列:(5)回溯法抽象为一棵树:集合的大小构成树的宽度,递归的终止条件构成深度;(6)回溯模板:for实现横向遍历,backtracking实现纵向遍历;(7)回溯法三部曲:确定函数参数及返回条件void;终止条件;单层递归逻辑(

2022-08-19 15:24:18 294

原创 【力客热题HOT100】-【068】238 除自身以外数组的乘积

动态规划,O(n)

2022-07-29 21:31:45 268

原创 【力客热题HOT100】-【044】114 二叉树展开为链表

两种方法:前序遍历和寻找前驱节点。注意后者的实现思想。

2022-07-29 16:53:29 127

原创 【力客热题HOT100】-【043】105 从前序与中序遍历序列构造二叉树

递归:重点是找到对应的左右子树进行分割

2022-07-28 22:58:50 294

原创 【力客热题HOT100】-【042】104 二叉树的最大深度

深搜和广搜两种方法解决。

2022-07-28 17:08:08 64

原创 【力客热题HOT100】-【041】102 二叉树的层序遍历

二叉树层序遍历,比较简单。

2022-07-28 16:35:40 246

原创 【力客热题HOT100】-【040】101 对称二叉树

1)递归,实现起来思路清晰;2)迭代:队列实现层次遍历;

2022-07-28 16:00:10 97

原创 【力客热题HOT100】-【038】96 不同的二叉搜索树

动态规划,结构特征比较明显。

2022-07-28 15:11:14 185

原创 【力客热题HOT100】-【039】98 验证二叉搜索树

两种方法:1)中序遍历(迭代);2)递归

2022-07-28 14:45:56 113

原创 【力客热题HOT100】-【037】94 二叉树的中序遍历

二叉树的先中后序遍历,以及层次遍历。

2022-07-27 15:54:36 125

原创 【力客热题HOT100】-【061】207 课程表

1)使用DFS和BFS实现拓扑排序;2)寻找有向图中是否存在环:DFS和拓扑排序;

2022-07-26 22:25:14 113

原创 【随想录】-【10 动态规划】123 买卖股票的最佳时机Ⅲ

本题的动规重点在于递推公式的判断,以及dp数组的推导,注意dp数组跟问题的状态紧密相关。

2022-07-26 14:44:36 78

原创 【随想录】-【10 动态规划】122 买卖股票的最佳时机Ⅱ

多次买卖,变一下递推公式即可。

2022-07-26 13:56:26 97

原创 【随想录】-【10 动态规划】121 买卖股票的最佳时机

此题三种解法。暴力方法超时,贪心比较简单,容易想出来。动规是针对这类题的特殊方法,因为考虑两种情况。

2022-07-25 20:52:10 61

原创 【随想录】-【10 动态规划】518 零钱兑换Ⅱ

动规能解决排列问题和组合问题。背包外物品内排列,背包内物品外组合。

2022-07-24 22:35:01 87

原创 【随想录】-【10 动态规划】322 零钱兑换

动规,比较简单。

2022-07-24 22:06:48 50

原创 【随想录】-【11 单调栈】-【05】84 柱状图中最大矩形

双指针暴力解法,O(n^2)过不了。动规和单调栈,找左右两边第一根比自己矮的柱子。

2022-07-24 13:19:11 256

原创 【随想录】-【11 单调栈】-【04】42 接雨水

三种解法。双指针就是两轮for的暴力搜索;动规就是升级版的双指针,达到O(n);最后单调栈属实难理解。

2022-07-24 12:06:07 157

原创 【随想录】-【11 单调栈】-【03】503 下一个更大元素Ⅱ

同样,可使用三种方法来解。暴力搜索也可以过。重点看单调栈怎么解决循环数组的问题。

2022-07-22 22:28:20 56

原创 【随想录】-【11 单调栈】-【02】496 下一个更大元素

抽象出问题,然后利用单调栈解决。注意数组存的内容不同,每日温度是下标,这个是下标对应的值。

2022-07-22 20:48:34 48

原创 【力客热题HOT100】-【100】739 每日温度

解法1:暴力搜索,逻辑简单,超时;解法2:动态规划,跳跃式遍历,升级的暴力搜索,AC;解法3:单调栈,O(n),AC,掌握好单调栈的思想和应用。

2022-07-22 18:17:47 245

原创 【力客热题HOT100】-【059】200 岛屿数量

岛屿问题:深搜广搜遍历。遍历的次数就是岛屿的数量。

2022-07-22 10:55:56 121

原创 【力客热题HOT100】-【060】206 反转链表

每次单独记下当前节点的后继节点。头插法两步,尾插法三步。

2022-07-22 10:01:44 132

原创 【随想录】-【动态规划】337 打家劫舍Ⅲ

使用记忆化递推和动态规划两种方法。

2022-07-21 22:08:15 226

原创 【随想录】-【动态规划】213 打家劫舍Ⅱ

同打家劫舍的动规,不过将环断开,考虑两种情况即可。

2022-07-21 21:02:56 174

原创 【力客热题HOT100】-【058】198 打家劫舍

比较明显的动态规划特征。注意要存储两个数,即第n家偷与不偷的两个结果都要存储,最后取最大值。更新数组比较明显。

2022-07-21 20:32:00 55

原创 【力客热题HOT100】-【057】169 多数元素

简单题。使用中位数法,投票法,哈希表解决。注意投票法原理的理解。

2022-07-21 17:28:22 99

原创 【力客热题HOT100】-【056】160 相交链表

分析题意,使用哈希表和双指针两种方法解决

2022-07-21 16:54:48 45

原创 【力客热题HOT100】-【055】155 最小栈

两种方法实现:双栈法和min_element法

2022-07-20 22:19:59 62

原创 【力客热题HOT100】-【054】152 乘积最大子数组

此题的动态规划,需要维护Fmax和Fmin两个数据来判断当前位置的最优解。

2022-07-20 21:46:01 76

原创 【力客热题HOT100】-【052】146 LRU缓存

用哈希表和双向链表来实现LRU的机制,注意双向链表的删除和增加节点的操作方式。

2022-07-20 13:19:58 132

原创 【力客热题HOT100】-【050】

理解快慢指针用法和数量关系,以及哈希表

2022-07-18 20:26:29 47

空空如也

空空如也

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

TA关注的人

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