- 博客(50)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 SSD服务
1.客户端生成随机私钥Xc,计算出公钥Yc发个服务器。2.服务器生成随机私钥Xs,计算出公钥Ys发给客户端。3.客户端根据公钥Ys和私钥Xc计算出会话密钥。4.服务端根据公钥Yc和私钥Xs计算出会话密钥。client - SecureCRT客户端。sshd - SSHD服务端。Client:客户端。
2022-09-07 22:13:20
431
原创 力扣刷题笔记:双端队列与优先队列(滑动串口最大值 & 前K个高频元素)
双端队列与优先队列(滑动串口最大值 & 前K个高频元素)知识点一、 滑动窗口最大值二、使用步骤1.引入库2.读入数据总结知识点栈与队列基础知识点栈:数据先进后出,可以通过stack.push(value)从栈顶添加元素,stack.top()访问栈顶元素,stack.pop()弹出栈顶元素;队列:数据先进先出,可以通过queue.push(value)从队尾添加元素,queue.peek()访问队首元素,queue.pop()弹出队首元素;双端队列:同时具有栈和队列的性质,可以通过
2022-05-06 15:49:09
467
原创 力扣刷题笔记:重复的子字符串(字符串匹配 & KMP)
重复的子字符串例题一、字符串匹配法二、KMP方法例题Leetcode.459. 重复的子字符串给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。示例 1:输入: s = “abab”输出: true解释: 可由子串 “ab” 重复两次构成。示例 2:输入: s = “aba”输出: false示例 3:输入: s = “abcabcabcabc”输出: true解释: 可由子串 “abc” 重复四次构成。 (或子串 “abcabc” 重复两次构成。)一、字
2022-04-06 00:06:20
569
原创 力扣刷题笔记:彻底搞懂KMP算法
文章目录一、KMP算法是什么?二、例题三、KMP算法(1)前缀表(2)KMP算法原理(3)计算前缀表一、KMP算法是什么?简而言之,KMP算法是一种快速在一长串的字符串中找到与目标字符串完全相同的子字符串的方法。例如:在"adaacffvg"中寻找’‘aacf’'这个字符串,就可以使用这个方法。二、例题Leet.28 实现strStr()实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位
2022-04-05 00:15:33
2604
7
原创 力扣刷题笔记:处理旋转字符串(颠倒字符串中的单词&左旋转字符串)
在之前的笔记中,做反转字符串时用到了双指针的方法,做到可以将一个字符串快速颠倒的方法,这个方法可以用来处理很多关于旋转字符串的问题。例如:Leetcode.151 颠倒字符串中的单词给你一个字符串 s ,颠倒字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不
2022-04-01 23:03:07
221
原创 力扣刷题笔记:替换空格符(申请额外空间&不申请空间双指针法)
Leetcode.剑指 Offer 05. 替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”本题题目没有做过多要求,所以我们可以用substr来快速完成这道题class Solution {public: string replaceSpace(string s) { string insert = "%20"; for(int
2022-04-01 22:33:20
134
原创 力扣刷题笔记:反转字符串ll
Leetcode.541 反转字符串 II给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = “abcdefg”, k = 2输出:“bacdfeg”示例 2:输入:s = “abcd”, k = 2输出:“bacd”本题一样可以使用双指针进行反转,但是本题重要的一
2022-03-30 22:11:25
214
原创 力扣刷题笔记:反转字符
Leetcode.344 反转字符编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]因为题目要求使用 O(1) 的额外空
2022-03-30 20:39:30
581
原创 力扣刷题笔记:哈希法的应用——赎金信
Leetcode.383 赎金信给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1:输入:ransomNote = “a”, magazine = “b”输出:false示例 2:输入:ransomNote = “aa”, magazine = “ab”输出:false示例
2022-03-29 21:21:17
173
原创 力扣刷题笔记:哈希表的应用——四数相加ll
Leetcode.454 四数相加给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0示例 1:输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输出:2解释:两个元组如下:(
2022-03-29 20:43:45
1161
原创 力扣刷题笔记:哈希表的应用——两数之和
Leetcode.1 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。题目中写道:你可以假设每种输入只会对应一个答案,意味着题目给出的数据集和输入值只会对应两个下标,也就是说输入数组内只会有两个数符合条件,所以不用考虑元素重复问题。做本题因为不需要排序,所以底层为哈希的unordere
2022-03-29 19:15:03
123
原创 力扣刷题笔记:快乐数
Leetcode.202 快乐数编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。本题的重点,其实题目已经加粗提示了,这道题解题关键并不是解出这道数学题,而是直接按照给的判断方法判断:如果是快乐数,最后结果等于1;如果不是快乐数
2022-03-29 15:52:05
511
原创 力扣刷题笔记:哈希表unordered_map的简单应用——两个数组的交集ll
Leetcode.350 两个数组的交集ll给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]题目要求最终得出结果元素出现的次数必须与
2022-03-28 23:20:12
186
原创 力扣刷题笔记:哈希表unordered_set的简单应用——两个数组的交集
Leetcode.349 两个数组的交集给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的本题要求两个数组的交集,并且交集中元素唯一,由于本题中对数组中元素没有限制,再使用上篇数组的
2022-03-28 21:39:30
999
原创 力扣刷题笔记:哈希表的最基础的应用-有效字母异位词
这一题可以用很多方法来做,但是我们学习了哈希表的基础知识以后,开始尝试用哈希表的方法解决这个问题。哈希表最主要的应用有两个,一个是排序,另一个就是查找元素是否在集合中出现,判断是否是字母异位词就很明显可以使用哈希表来解决这个问题。242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出
2022-03-27 21:43:24
644
原创 力扣刷题笔记:环形链表 ll(双指针法不是哈希)
这个题目出就让人很难受,如果不用哈希表的话有点难解,有点像小学的跑步相遇的数学题,虽然说题目将单链表的特性展现的非常好,但是这个题目做起来的过程相当让人感觉无语。leetcode.142 环形链表 ll给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是
2022-03-26 23:17:22
633
原创 力扣刷题笔记:面试题 链表相交(暴力解法&尾对齐法&双指针法)
这道题虽然是一道简单题,但是题目设计的非常有趣,我没想到双指针这个方法,这是提交以后在力扣评论区看到的,非常巧妙,逻辑能力真的太重要了。Leetcode. 面试题02.07 链表相交给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。1).暴力解法,暴力解法没什么好说了写两个循环,用A第一个
2022-03-25 23:58:05
980
TA创建的收藏夹 TA关注的收藏夹
TA关注的人