精品西红柿
码龄9年
关注
提问 私信
  • 博客:33,542
    33,542
    总访问量
  • 67
    原创
  • 136,138
    排名
  • 354
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2015-10-14
博客简介:

一只精品西红柿的进化过程

博客描述:
默默努力的程序媛
查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    361
    当月
    3
个人成就
  • 获得411次点赞
  • 内容获得8次评论
  • 获得431次收藏
创作历程
  • 31篇
    2024年
  • 4篇
    2021年
  • 31篇
    2020年
  • 2篇
    2018年
成就勋章
TA的专栏
  • muduo
  • LeetCode刷题
    26篇
  • C++总结
    8篇
  • 高频八股文
    3篇
  • 操作系统
    7篇
  • Linux系统编程
    3篇
  • 数据结构
    1篇
  • project
  • shell脚本
    1篇
  • 计算机网络
    2篇
  • 笔试真题
    4篇
  • 剑指offer
    7篇
  • 算法初级
    4篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Leetcode 4.21

用vector去存罗马数字symbol对应的数值val,如果val比num小,则num -= val;与题目3相同,注意题目:不重复的四元组!这个题可以遍历数组,固定一个元素,target - nums[i],就变成了3数之和的解法。可以排列组合的题目都可以首先联想到全排列,递归时先判断是否符合递归终止条件,不符合则依次加当前电话号码位置对应的字母,加完后递归,用unordered_map去存罗马数字对应的数值,分情况讨论,把所有情况都列出来即可。需要注意的点:去重!
原创
发布博客 2024.04.21 ·
293 阅读 ·
10 点赞 ·
4 评论 ·
2 收藏

Leetcode 4.18

状态dp[i][j]表示s[…i]与p[…j]是否能够匹配。dp[s.size()-1][p.size()-1]即为本题答案。状态转移当。
原创
发布博客 2024.04.18 ·
699 阅读 ·
25 点赞 ·
1 评论 ·
10 收藏

Leetcode 4.16

【代码】Leetcode 4.16。
原创
发布博客 2024.04.16 ·
495 阅读 ·
4 点赞 ·
0 评论 ·
7 收藏

Leetcode 4.14

我们先看后两位 4, 1 能否组成更大的排列,答案是不可以,同理 5, 4, 1也不可以 直到3, 5, 4, 1这个排列,因为 3 < 5, 我们可以通过重新排列这一段数字,来得到下一个排列。因为我们需要使得新生成的数列尽量小,于是我们可以对5, 3, 1进行排序,可以发现在这个算法中,我们得到的末尾数字一定是倒序排列的,于是我们只需要把它反转即可。最终,我们得到了4, 1, 3, 5这个数列 完整的数列则是2, 6, 4, 1, 3, 5。然后,我们调换3和4的位置,得到4, 5, 3, 1这个数列。
原创
发布博客 2024.04.15 ·
440 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

C++高频面试知识总结 part3

因此, 为了避免 rehash 对服务器性能造成影响, 服务器不是一次性将 ht[0] 里面的所有键值对全部 rehash 到 ht[1] , 而是分多次、渐进式地将 ht[0] 里面的键值对慢慢地 rehash 到 ht[1]。随着操作的不断执行, 哈希表保存的键值对会逐渐地增多或者减少, 为了让哈希表的负载因子(load factor)维持在一个合理的范围之内, 当哈希表保存的键值对数量太多或者太少时, 程序需要对哈希表的大小进行相应的扩展或者收缩。这种方式可以减少遍历的次数,提高扩容的效率。
原创
发布博客 2024.04.07 ·
743 阅读 ·
16 点赞 ·
0 评论 ·
9 收藏

C++高频面试知识总结 part2

也就是。
原创
发布博客 2024.04.06 ·
1166 阅读 ·
14 点赞 ·
0 评论 ·
24 收藏

win10电脑无线网卡优化

近期win10会频繁断网,无任何规律。目前整理搜索后使用以下两种方法优化网卡,更改配置后断网问题得到有效改善。方法二:【Preferred enable】修改为prefer 5.2GHz。方法一:在【电源管理】中取消勾选【允许计算机关闭此设备以节约电源】
原创
发布博客 2024.04.05 ·
1237 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

Leetcode 4.5

DFS 是一个劲的往某一个方向搜索,而回溯算法建立在 DFS 基础之上的,但不同的是在搜索过程中,达到结束条件后**,恢复状态,回溯上一层,再次搜索**。当问题需要 “回头”,以此来查找出所有的解的时候,使用回溯算法。: 在搜索中,遇到“这条路不可能和目标字符串匹配成功”的情况,例如当前矩阵元素和目标字符不匹配、或此元素已被访问,则应立即返回,从而避免不必要的搜索分支。由于我们这条路是可以回头的,并非只能往右下方向走,所以可能会遇到回踩前一个刚刚访问过的格子,而这个格子,题目里说是不可以重复使用的。
原创
发布博客 2024.04.05 ·
778 阅读 ·
22 点赞 ·
0 评论 ·
14 收藏

Leetcode 4.2

回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。
原创
发布博客 2024.04.02 ·
348 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

linux系统编程 线程 p1

进程ID是用pid_t数据类型来表示的,是一个非负整数。线程ID是用pthread_t 数据类型来表示的,实现的时候可以用一个结构来代表pthread_t数据类型,所以可移植的操作系统实现不能把它作为整数处理。就像每个进程有一个进程ID一样,每个线程也有一个线程ID。进程ID在整个系统中是唯一的,但线程ID不同,线程ID只有在它所属的进程上下文中才有意义。线程可以安排它退出时需要调用的函数,这与进程在退出时可以用atexit函数安排退出是类似的。这种现象是因为:线程的调度取决于调度器的调度策略。
原创
发布博客 2024.04.02 ·
759 阅读 ·
4 点赞 ·
0 评论 ·
9 收藏

Leetcode 4.1

否则就无法跳到最后一个位置了。如果访问最后一个元素,在边界正好为最后一个位置的情况下,我们会增加一次「不必要的跳跃次数」,因此我们不必访问最后一个元素。可以这么理解 想象你在玩大富翁,回合制游戏,随身带的钱决定你每回合最多可以走多少格,需要以最短的回合数到达终点。格子里面的数字代表“钱”,每回合你需要停留在格子里休息得到补充的“钱”才能继续行走。每次走到一个格子的时候,你需要估计预算在下一个回合能走多少格,哪个格子的钱最多,下一回合就去那个格子。但是前面的格子里有多少钱有战争迷雾看不到,要到了才知道。
原创
发布博客 2024.04.01 ·
832 阅读 ·
20 点赞 ·
0 评论 ·
12 收藏

操作系统高频面试知识总结 part1

负责管理和协调计算机硬件资源,为应用程序提供环境和服务的组件。包括:资源管理、进程管理、文件管理、用户界面、错误检测和恢复。正在执行的程序实例,拥有独立的内存空间和系统资源,每个进程都有自己的指令序列、数据和执行环境。进程创建是通过操作系统调度和管理,当程序被执行,操作系统系统会为其创建一个独立的进程。其主要特征包括:独立性:内存空间和系统资源是独立的;执行状态:运行、就绪、阻塞等不同状态,根据进程调度算法决定执行顺序;
原创
发布博客 2024.04.01 ·
801 阅读 ·
12 点赞 ·
0 评论 ·
30 收藏

C++高频面试知识总结 part1

是一种用户定义的数据类型,包含了数据成员和函数成员。数据成员存储与类相关的状态,函数成员定义对数据进行操作的方法。
原创
发布博客 2024.03.27 ·
963 阅读 ·
13 点赞 ·
0 评论 ·
18 收藏

Leetcode 3.26

第K个最大元素用堆做比较容易,可以维护一个只有K个元素的大根堆,如果元素个数超过K则pop,也就是将堆顶大元素删除,那么当前堆就是一个以第K大元素为堆顶的大根堆。堆可以用priority_queue实现。本题难点在于priority_queue的相关知识,如何自定义比较方式等。比如本题的数据类型并不是基本数据类型,而是pair<int, int>,所以需要自定义比较方式。思路是维护一个递减栈,存储的是当前元素的位置。
原创
发布博客 2024.03.26 ·
996 阅读 ·
5 点赞 ·
0 评论 ·
8 收藏

Leetcode 3.25

void push(int val) 将元素val推入堆栈----> stack push(val) 以及 stack_min.push(min(val, stack_min.top()))难点就在于如何获取最小元素,一个栈正常push元素,另一个栈存放当前栈中的最小元素。void pop() 删除堆栈顶部的元素----> stack.pop() stack_min.pop()int top() 获取堆栈顶部的元素-----> stack top()其实与括号的题目有点类似,用两个栈,分别为数字栈字母栈。
原创
发布博客 2024.03.26 ·
417 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

linux系统编程 socket part2

UDP丢包并不是因为TTL,TTL是当前包的要跳转的路由的个数,linux环境下一般默认为64,Windows一般为128,一般情况下完全足够。丢包其实是由于阻塞造成的。问题3:发送端发送消息后,接收端收到了数据,并且发送了ACK,但是ACK数据丢了,在一定时间后没有收到接收端ACK,则重新发送消息。问题4:如图 d2 丢包,ACK1 延迟回复给了发送端,则发送端认为d2发送成功,继续发d3,实际接受端是没有收到过d2的。rcver.cpp:设置套接字,打开广播选项,如果不打开,可能收到,可能收不到。
原创
发布博客 2024.03.24 ·
1082 阅读 ·
27 点赞 ·
0 评论 ·
14 收藏

Leetcode 3.18

递归遍历每一个节点的所有可能的路径,然后将这些路径数目加起来即为返回结果。假设当前的节点 p 的值为 val,我们对左子树和右子树进行递归搜索,对节点 p 的左孩子节点 pl 求出。: 当 (1) root 为叶节点(左右子树均为空) 且 (2) 路径和等于目标值(targetSum == 0),则将此路径 tmp 加入 ans。我们可以递归遍历记录所有的路径,同时计算路径和,如果等于那么添加到最终的vector<vector< int >>中。: 当前节点 root ,当前目标值 targetSum。
原创
发布博客 2024.03.18 ·
834 阅读 ·
19 点赞 ·
0 评论 ·
19 收藏

linux系统编程 socket part1

套接字是一种通信机制(通信的两方的一种约定),socket屏蔽了各个协议的通信细节,提供了tcp/ip协议的抽象,对外提供了一套接口,通过这个接口就可以统一、方便的使用tcp/ip协议的功能。在本章中,我们将描述套接字网络进程间通信接口,进程用该接口能够和其他进程通信,无论它们是在同一台计算机上还是在不同的计算机上。套接字是通信端点的抽象。以为例报式:从sockfd接收消息,接收的消息buf,长度len, 有没有特殊要求 ,对端的地址,和地址长度。在32位的机器上,各占用4,4,1共9个字节的大小。
原创
发布博客 2024.03.17 ·
885 阅读 ·
15 点赞 ·
0 评论 ·
21 收藏

Leetcode 3.15

根据前序和中序遍历我们可以确定二叉树的根节点,左子树和右子树,不断递归得到结果。比较复杂的是确定左右子树的边界。借助map来快速确定元素在inorder中的位置,这副图中的边界位置建议仔细推导。题目要求展开后与先序遍历相同,那么可以按照先序遍历再更改链表,在前序遍历结束之后更新每个节点的左右子节点的信息,找到前后元素在二叉树当中的位置,将二叉树展开为单链表。方法一:我们只需存储升序遍历,返回升序遍历的结果即可。改进:我们还可以在找到答案后停止,不需要遍历整棵树。函数作用:将一个二叉树,原地将它展开为链表。
原创
发布博客 2024.03.16 ·
371 阅读 ·
9 点赞 ·
0 评论 ·
5 收藏

Leetcode 3.14

来递归判断,函数表示考虑以 root 为根的子树,判断子树中所有节点的值是否都在 (l,r) 的范围内(注意是开区间)。如果 root 节点的值 val 不在 (l,r) 的范围内说明不满足条件直接返回,否则我们要继续递归调用检查它的左右子树是否满足,如果都满足才说明这是一棵二叉搜索树。如果该二叉树的左子树不为空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值;我们要比较的是 左子树所有节点小于中间节点,右子树所有节点大于中间节点。
原创
发布博客 2024.03.15 ·
385 阅读 ·
9 点赞 ·
0 评论 ·
8 收藏
加载更多