自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 zookeeper安装原生开发 C API接口时报错

报出的错误:error: '%d' directive writing between 1 and 5 bytes into a region of size be

2024-04-23 17:42:41 334 1

原创 【epoll的水平触发和边缘触发】

epoll 的水平触发(Level Triggered, LT)和边缘触发(Edge Triggered, ET)是两种不同的事件通知机制,它们定义了 epoll 如何向应用程序报告文件描述符上的事件。理解这两种模式的差异对于使用 epoll 处理并发网络连接是很重要的。

2024-04-15 15:24:25 632

原创 【哈希表】同构字符串

b || // 如果s2t哈希表中存在键为a的元素,并且对应的值不等于b,或者。= a) // 如果t2s哈希表中存在键为b的元素,并且对应的值不等于a。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。// 创建两个哈希表,用于记录s到t和t到s的映射关系。// 遍历完所有字符后没有返回false,则说明是同构的,返回true。t2s[b] = a;输入:s = "paper", t = "title"输入:s = "egg", t = "add"

2024-04-11 22:42:05 299

原创 【哈希表】赎信金

/遍历 ra 如果说 哈希表里对应的字母是0 就没出先 直接false。for(auto c:magazine){//便利maga 并把每一个出现的次数相加。输入:ransomNote = "aa", magazine = "aab"输入:ransomNote = "aa", magazine = "ab"输入:ransomNote = "a", magazine = "b"//否则jainjian。

2024-04-11 22:41:26 318

原创 【哈希表】单词规律

/ 如果左指针超过了s的长度,说明s中的单词数量少于模式中的字符数量,返回false。// 如果最后left的位置恰好是字符串s的长度加1(因为最后会多加一个),说明s中的单词数量和模式字符串中的字符数量完全匹配。输入: pattern = "abba", s = "dog cat cat dog"输入:pattern = "abba", s = "dog cat cat fish"输入: pattern = "aaaa", s = "dog cat cat dog"// 用于存储从s中分割出来的单词。

2024-04-11 22:40:39 223

原创 【哈希表】两个数组的交集

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2],返回 它们的 交集。输出结果中的每个元素一定是。解释:[4,9] 也是可通过的。

2024-04-11 22:39:34 161

原创 【哈希表】有效的字母异位词

弄一个哈希表 然后便利一个 就加一 便利t就减一 如果最后都是0 那就是对的。输入: s = "anagram", t = "nagaram"输入: s = "rat", t = "car"中每个字符出现的次数都相同,则称。,编写一个函数来判断。

2024-04-11 22:38:54 229

原创 【滑动窗口】无重复字符的最长字串

/这个题就是先弄一个容器 这个容器是不能重复的 然后我弄一个滑动窗口 左指针就是指的是这个字串最开始的地方 右指针就是可以向右边移动的 右指针所经过的字符如果在容器中没有出现过就加入进去 然后窗口大小增加 如果有重复的左指针就增加 并且删除左指针指向的元素 然后一直到没有重复的为止。while(i<j&&setmp.count(s[j])){//后面那个是判断这个容器里s的子串出现的次数。解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。//容器中移除的是左指针所指向的元素。

2024-04-10 22:27:36 240

原创 【滑动窗口】

滑动窗口算法是解决一类特定问题的有效方法,尤其适用于涉及数组/字符串的连续元素问题。这里有一些常见的应用题型,可以用C++实现滑动窗口算法来解决:

2024-04-10 22:26:48 215

原创 这里说一下快慢指针的应用

当数组中的数字大小在一个范围内(例如1到n),可以将数组视为链表,数组中的每个元素指向下一个元素的索引。:首先使用检测环的方法找到快慢指针相遇的点,然后将一个指针移到链表头部,另一个指针保留在相遇点,两个指针每次同时前进一步,当它们再次相遇时,该位置就是环的起始点。:先让快指针向前移动N步,然后快慢指针同时移动,直到快指针到达链表末尾。:使用一个快指针和一个慢指针,快指针每次移动两步,慢指针每次移动一步。:在快慢指针首次相遇后,保持慢指针不动,将快指针移动到下一个节点,然后开始计数。

2024-04-10 22:25:45 418

原创 【双指针】快乐数

2->4->16->37->58->89->145->42->20->4 这是一个非快乐数 可以看到这是一个循环。//所以说快乐数和非快乐数就是一个是循环一直循环一个是可以得到1 然后在1中一直循环。//所以我们用到快慢指针 如果说快慢指针相遇了是一的话就是快乐数。对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是。12 + 92 = 82(2是平方)1,那么这个数就是快乐数。编写一个算法来判断一个数。

2024-04-10 22:25:09 314

原创 【双指针】找出字符串中第一个匹配项的下标

/有两个字符串 在A中找出B字符串中的第一个匹配项的下标 就是说B的整体单词是在A中出现的 不能说是跳着的。输入:haystack = "leetcode", needle = "leeto"for(int i = 0;输入:haystack = "sadbutsad", needle = "sad"解释:"leeto" 没有在 "leetcode" 中出现,所以返回 -1。if(j == needle.length())//j为步长。else//不相等退回开始的位置,i+1,j=0;

2024-04-09 22:41:59 367

原创 【双指针】反转字符串中的单词

中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。// 一个单词之内没有空格 每个单词之间必须有空格 反转的是顺序。解释:反转后的字符串中不能存在前导空格和尾随空格。输入:s = "a good example"输入:s = "the sky is blue"输入:s = " hello world "中使用至少一个空格将字符串中的。

2024-04-09 22:41:16 251

原创 【双指针】接雨水

解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。//宽度是1 然后给的数组就是代表柱子的高度 所以说看例子就是看他的凹槽可以得到多少水。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]// 第一个柱子和最后一个柱子不接雨水。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨。输入:height = [4,2,0,3,2,5]个非负整数表示每个宽度为。

2024-04-09 22:40:30 383

原创 【双指针】轮转数组

对小时数取模24(因为一天有24小时),得到余数18,这就是最终的小时数(在这个特定例子中,小时数没有超出范围,所以直接就是18)输入: nums = [1,2,3,4,5,6,7], k = 3。输入:nums = [-1,-100,3,99], k = 2。向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]向右轮转 1 步: [99,-1,-100,3]输出: [5,6,7,1,2,3,4]

2024-04-09 22:39:15 125

原创 【双指针】删除有序数组中的重复项Ⅱ

解释:函数应返回新长度 length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。输入:nums = [0,0,1,1,1,1,2,3,3]输出:7, nums = [0,0,1,1,2,3,3]输出:5, nums = [1,1,2,2,3]删除重复出现的元素,使得出现次数超过两次的元素。输入:nums = [1,1,1,2,2,3],返回删除后数组的新长度。

2024-04-09 22:20:51 185

原创 【双指针】删除有序数组中的重复项

解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。不需要考虑数组中超出新长度后面的元素。解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2。// 递增的数组 又是原地删除重复的元素(因为是数组就想到两个指针覆盖) 每个元素只出现一次。输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]输出:2, nums = [1,2,_],返回删除后数组的新长度。

2024-04-09 22:20:13 208

原创 【双指针】移除元素

例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。//一个没说有顺序的数组 和一个值 移除这个数组里等于val的元素 返回新的长度 不能弄额外的数组 顺序可以改变。输入:nums = [0,1,2,2,3,0,4,2], val = 2。输入:nums = [3,2,2,3], val = 3。的元素,并返回移除后数组的新长度。

2024-04-09 22:19:31 214

原创 【双指针】合并两个有序数组

输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。//非递减的两个数组 还有两个整数表示数组的个数 合并两个数组然后 还是递增的排列。输入:nums1 = [1], m = 1, nums2 = [], n = 0。解释:需要合并 [1,2,3] 和 [2,5,6]。输出:[1,2,2,3,5,6]个元素表示应合并的元素,后。中,使合并后的数组同样按。

2024-04-09 22:13:24 315

原创 【双指针】三数之和

不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]是否存在三元组的下标互不相等 而且对应的数值相加是0。输出:[[-1,-1,2],[-1,0,1]]注意,输出的顺序和三元组的顺序并不重要。先排序[-4,-1,-1,0,1,2]解释:唯一可能的三元组和不为 0。互不相等告诉我们不能取重复的元素。输入:nums = [0,1,1],判断是否存在三元组。

2024-04-09 22:12:39 335

原创 【双指针】成最多水的容器

/什么时候移动呢 不管怎么移动 它都会减少x的值 那在这个前提下 我让下一个水槽有可能 我说的是有可能变的大 移动短板的话 下一个水槽可能会变大 要是移动长板的话 一定是减少的。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。//给的数组的值代表的是它的高度 下标就是第几条 找到两个线 让他放水最多 其实就是找围成的最大面积 也就是坐标的x*y最大。输入:[1,8,6,2,5,4,8,3,7]

2024-04-09 22:11:48 184

原创 【双指针】两数之和|| 输入有序数组

解释:-1 与 0 之和等于目标数 -1。因此 index1 = 1, index2 = 2。返回 [1, 2]。因此 index1 = 1, index2 = 2。返回 [1, 2]。因此 index1 = 1, index2 = 3。//返回的是下标 2、下标是1开始 3。输入:numbers = [2,7,11,15], target = 9。输入:numbers = [2,3,4], target = 6。输入:numbers = [-1,0], target = -1。

2024-04-09 22:10:56 368

原创 【双指针】判断子序列

bool isSubsequence(string s, string t){//s是否shi t的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。//如果子序列的匹配了就跳到下一个子序列的字符串 然后再进行匹配。输入:s = "abc", t = "ahbgdc"输入:s = "axc", t = "ahbgdc"

2024-04-09 22:10:11 208

原创 【双指针】验证回文串

if(isalnum(ch)){//判断是否是字符串 判断字符变量c是否为字母或数字,若是则返回非零,否则返回零。如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。输入: s = "A man, a plan, a canal: Panama"解释:"amanaplanacanalpanama" 是回文串。解释:"raceacar" 不是回文串。输入:s = "race a car"//先转换字符串大小写同一。字母和数字都属于字母数字字符。

2024-04-09 22:08:50 274

原创 [substr()函数的用法c++]

在C++中,substr是std::string类的一个成员函数,它用于从字符串中提取一个子字符串

2024-04-09 20:16:33 235

原创 【MySQL核心SQL】

Mysql核心知识

2024-04-02 17:50:54 919 1

原创 【观察者模式】

观察者模式定义了对象之间的一种一对多依赖关系,允许多个观察者对象同时监听某一个主题对象。这种模式是事件驱动编程的核心,其主要目标是实现对象间的松耦合。松耦合的设计允许我们构建灵活的系统,组件可以独立于其他组件进行扩展和修改。

2024-04-02 17:35:36 547

原创 【单例设计模式】

单例模式的核心思想是确保一个类只有一个实例,并提供一个全局访问点。这样做的好处是控制了实例的数量,并且可以节省系统资源。在实际应用中,比如配置管理器、线程池、缓存等场景,单例模式都非常有用。

2024-04-02 12:11:41 769

原创 简述一下堆和栈的区别

堆和栈都是计算机内存中用于存储数据的结构,但它们在管理和使用数据方面有一些关键的区别

2024-03-27 21:10:12 189

原创 【58. 最后一个单词的长度】

/最后一个单词的长度 其实就是翻转字符串,然后看下一个空格就终止。//判断标志是否出现在空格前面。,由若干单词组成,单词前后用一些空格字符隔开。是指仅由字母组成、不包含任何空格字符的最大子字符串。翻转字符串,在判断空格。

2024-03-25 20:06:07 263

原创 送给35岁程序员以及12年后的自己

35岁的程序员们,不要被年龄的标签所束缚。你们有经验,有智慧,有无限的可能。只要保持学习的热情,保持对技术的敏感度,你们就能在这个行业里继续创造价值,继续书写精彩的职业生涯。35岁,你的职业生涯才刚刚开始。

2024-03-25 20:02:24 210

原创 【mysql基础知识】

介绍了 mysql数据类型、运算符、常用函数、完整性约束、数据库表设计、数据库范式设计

2024-03-25 16:13:58 696

原创 【从政府工作报告探计算机行业发展】

政府工作报告作为政府工作的全面总结和未来规划,不仅反映了国家整体的发展态势,也为各行各业提供了发展的指引和参考。随着信息技术的快速发展,计算机行业已经成为推动经济社会发展的重要引擎之一。因此,从政府工作报告中探寻计算机行业的发展趋势、政策导向和未来机遇,对于行业内的企业和从业者来说具有重要的指导意义。

2024-03-22 10:56:21 341

原创 【深入理解IO多路复用】

IO多路复用是高性能网络编程的关键技术之一。通过合理使用select、poll或epoll等系统调用,开发者可以创建出能够处理大量并发连接的高效服务器。在选择使用哪种IO多路复用技术时,需要根据具体的操作系统和应用场景来决定。

2024-03-22 10:41:55 807

原创 【C++11深入理解C++智能指针】

C++11引入了智能指针(smart pointers),它们是模板类,可以帮助程序员以一种更安全的方式管理资源。

2024-03-22 10:02:58 465

原创 【被c++11弃用的智能指针auto_ptr】

C++11auto_ptr被弃用的原因

2024-03-10 12:05:26 419

原创 【c++11 左值和右值】

看完就能让你使用c++11的左值引用和右值引用

2024-03-10 11:40:34 818

原创 【c++11Lambda表达式】

现代c++c++11Lambda表达式简单使用

2024-03-10 11:24:04 843

原创 【c++11线程库的使用】

c++11线程库知识以及手写线程池

2024-03-10 11:09:47 1295

原创 c++面经总结

Protocol Buffers 使用.proto文件来定义数据结构和消息格式。一个简单的.proto文件如下:​在这个例子中,我们定义了一个名为Person的消息,其中包含了nameid和email三个字段。每个字段都有一个唯一的标识号,用于在二进制序列中标识字段。

2023-12-15 20:11:21 1144

空空如也

空空如也

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

TA关注的人

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