刷题记录
文章平均质量分 72
General 5219
新人上路
展开
-
代码随想录_字符串
这个反转字符串,就两个规则,一个是pos一次增加2*k个,将字符串切成一段一段区间。另一个就是判断这个区间内剩余元素是否够k个,够的话就前k个交换,不够的话,区间内所有元素交换。按照2k步长增加,剩余字符一定是小于,<=2k,因此循环中只需要判断剩余字符大于等于k还是小于k。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。然后去除多余的空格,双指针,fast先遍历字符串前面的空格,直到fast拿到第一个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。原创 2023-12-13 13:42:02 · 96 阅读 · 0 评论 -
代码随想录-链表
如图,假如相遇的时候,slow走过x+y,fast走过x+(z+y)+y,又因为fast的速度是slow的两倍,因此:x+n(z+y)+y = (x+y)*2。这里的三个步骤一定要牢记:节点2要翻转,会失去与节点3的联系,所以tmp1要保存节点3,节点二翻转后要指向节点1,需要tmp保存一下节点1。第二次循环,需要交换节点3、节点4,cur需要指向节点1,这里判断一下节点3和节点4是否都存在,否则无法交换。2.如果有环的话,fast相对于slow一次多走一个节点,相当于一次靠近一个节点,因此一定会相遇。原创 2023-12-09 10:35:59 · 91 阅读 · 0 评论 -
代码随想录-数组
数组是存放在连续内存空间上的相同类型数据的集合。原创 2023-12-02 19:57:19 · 72 阅读 · 0 评论