- 博客(15)
- 收藏
- 关注
原创 代码随想录:栈与队列02
本题思路要有一个有序的递增队列,然后一个数组存放结果。队列中放数组下标,当下标小于滑动窗口最小值时,将其移除队列中,然后如果要加入的下标的值大于队列尾下标代表的值那么将队尾元素移除。本题的思路即是通过一个栈来存储每一个值,然后当遇到符号的时候就将前两个数字出栈,运算后的结果入栈,数字直接入栈,最后栈返回结果值。首先是需要一个map来存储出现的数字以及其频率。然后需要一个小顶堆,也是优先级队列。将map中的键值对放入其中,维持其中k个高频元素。
2024-07-28 22:36:52
653
原创 代码随想录:栈与队列01
那么我们在遍历字符串的时候,遇到左括号就将它对应的右括号存储进栈,然后遇到对应的右括号出栈,当不匹配,或者栈空了的时候就失败。本题的思路是使用两个栈来实现队列,其中一个栈用来数据in,另一个栈用于数据out。当in栈中有数据而out栈中没有数据时,需要出栈的情况,要把in栈中所有数据push到out栈中,然后出栈。本题也是栈的应用,通过本题理解了栈确实可以用于消除的操作,因为栈可以查看上一个元素是什么。关键是怎么实现先进后出,当需要出栈的时候,将队尾元素前的元素出队列在进队列,然后弹出即可。
2024-07-26 22:03:27
762
原创 代码随想录:字符串02
本题理论上也是使用KMP算法,不过还可以进行移动匹配,就是新构建一个字符串为s+s,然后去除首尾字符,看新字符串是否包含原字符串,如果包含,那就说明是重复的子字符串。首先找出待匹配字符串的next数组,然后再去匹配字符串,如果不等就回退到next数组的下标的前一个位置继续匹配,本题理解起来比较复杂。首先,需要去除字符串中多余的空格,保证首尾没有空格,且每个单词中间仅有一个空格。然后翻转整个字符串,之后再翻转字符串中的每个单词。其中去除多余空格,采用双指针法,类似于移除元素。
2024-07-25 23:07:36
552
原创 零基础蜜罐部署:如何使用Docker部署cowrie蜜罐
补充一下,这里自己设置的挂载位置可能并没有用,如果通过修改这个位置的配置文件不能影响到docker中的cowrie,那么可以通过找到dockefile文件中默认的随机挂载位置的cowrie.cfg来更改cowrie的配置,这里要注意一个问题,就是要给你自己修改的配置文件升权,并且不要直接在dist文件上操作。做端口转发,将22端口的流量重定向到2222端口,cowrie默认监听2222端口,转发后,cowrie监听22和2222端口,登录使用2122端口。
2024-07-20 23:04:59
1199
原创 从零开始:如何使用GitHub与Hexo搭建个人博客
这里要注意在安装之后需要配置系统的全局变量,如果系统的全局没配置好,那么hexo的安装会出现问题。首先,打开命令行并导航到你的 Hexo 项目目录(D:\MyBlog\blog)。这个命令将在 source/_posts 目录下创建一个新的 Markdown 文件,文件名为 你的文章标题.md。如图,资源的名称可以是你的用户名+github+io(ps:因为我已经搭建过了,所以下图会出现仓库已存在的警告)这里建议本地与GitHub采用SSH连接,防止经常连接不到的错误。查看,如图即是安装成功。
2024-07-20 22:49:19
2189
原创 代码随想录Day7-20:链表
接下来是寻找环的入口,当快慢指针相遇时,再设定两个指针,一个是相遇点,一个是头节点,每次走一步,相等时返回环的入口。设置两个快慢指针,其中快指针每次走2个节点,慢指针每次走一个节点,如果快慢指针能够相等,那么说明该链表中存在环。上面是按照经验想到的解法,看了代码随想录之后,发现用的是快慢指针的解法,那么就在写一个快慢指针的解法吧。快指针先走n+1步,然后快慢指针同时走,慢指针即可到达要删除的节点前的一个位置,然后进行删除操作即可。该链表中需要借助一个哑节点,然后在交换时借助两个节点的指针进行交换。
2024-07-20 22:36:05
596
原创 代码随想录Day-7-19 移除链表元素、设计链表、反转链表
首先在自己定义的链表类中,标注有哑节点的属性,在构造方法中不需要在指定其类型。在接下来的get等方法中需要注意下标问题。借助两个指针和一个临时变量,将链表的next指针逐个反转即可,注意最后返回时prev是头节点,cur不是头节点。创建一个哑节点来操作删除头节点,在删除过程中借用两个指针。分别指向前置节点和当前节点。最后返回时要返回哑节点的。在删除指定节点的方法中,删除完头节点后需要及时返回。头节点修改的话,返回的是原链表。八股:死锁、常见锁、进程的虚拟内存。Java八股:I/O。
2024-07-19 22:47:26
221
原创 代码随想录Day7-18:数组的平方、长度最小子数组、螺旋矩阵
采用双指针法,新建一个数组存储比较的平方的值,while循环中要相等不然会漏掉一个比较。采用滑动窗口的方法,通过两个指针控制窗口,保证窗口内的和大于等于target后,然后移动窗口。八股:进程调度算法的了解、进程之间的通信方式、进程的同步和互斥以及如何实现进程的同步和互斥。主要是模拟螺旋的过程,注意左开右闭区间,注意圈数。Java八股:JVM内存区域详解、JVM垃圾回收详解、类加载过程、类加载器。循环的每次迭代中,这两个变量能够在不同的。循环能够正确地从上一次结束的地方继续。循环结束时的值,以便下一个。
2024-07-18 21:57:12
258
原创 如何使用腾讯云Ubuntu设置root用户登陆
按下insert键进入插入模式,将PermitRootLogin后面的prohibit-password改为yes,再按下Esc键,然后依次按下:键(英文冒号键)、w键和q键,最后按下回车键,保存修改成功。接着输入root密码,屏幕不会像Windows那样出现星号,输完密码敲回车键就可以了,要输入两次密码。重启ssh服务使刚才的ssh配置的修改生效,执行命令。修改ssh登录的配置。
2024-07-18 15:30:42
935
原创 代码随想录Day7-17
一层循环,当发现与目标值相等时,进入循环将后方的元素把前面的元素覆盖掉,结束这个循环后,i-1,因为后边的元素下标都减了一个,这时候如果不减一会漏掉进接下来的一个元素。Java八股: 并发:ThreadLocal 、线程池「拒绝策略、阻塞队列、工作流程等」、Future类、AQS「三种同步器」有快慢指针两个指针,其中快指针会遍历数组中的所有元素,慢指针只遍历了我们需要的元素,因此遍历完之后,慢指针即为所求。八股训练:进程与线程之间的关系、并行和并发的区别、用户态和内核态以及在什么情况下切换。
2024-07-17 21:06:39
228
原创 如何建立反向隧道
SSH 命令的 -R 参数确实会建立一个反向隧道,将远程主机(在这个例子中是45.63.93.66)的端口(23)转发到本地主机的端口(2223)。你可以在你的本地主机上生成一个 SSH 密钥对,然后将公钥添加到目标主机的 ~/.ssh/authorized_keys 文件中。这将把这个主机的公钥添加到你的 ~/.ssh/known_hosts 文件中,以后你再连接到这个主机时就不会再看到这个提示了。如果你有这个主机的公钥指纹,并且它与显示的指纹匹配,那么你可以确认你正在连接到正确的主机。
2024-07-17 09:19:25
1831
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅