- 博客(4)
- 收藏
- 关注
原创 代码随想录学习笔记【字符串】(四)
感觉字符串这里主要应用的是双指针和KMP算法,等这一遍过完一定要再来一遍KMP算法一、翻转字符串采用双指针的思路。i < lens/2;i++,j--){
2023-04-05 21:33:59 49 1
原创 代码随想录学习笔记【哈希表】(三)
这两周有点忙,刚开完组会,其实哈希表已经过完了,但是现在才发,以后要加油!一、有效字母异位词for(i = 0;//因为字符a到字符z的ASCII是26个连续的数值,所以字符a映射为下标0,相应的字符z映射为下标25,再遍历字符串s的时候,只需要将 s[i] - ‘a’ 所在的元素做+1 操作即可,并不需要记住字符a的ASCII,只要求出一个相对数值就可以了。这样就将字符串s中字符出现的次数,统计出来了for(i = 0;
2023-04-05 19:50:42 138 1
原创 代码随想录笔记【链表】(二)
让被移除的元素的前一个元素直接指向被移除元素的下一个元素,即可完成元素的移除,同时需要考虑到被移除的是第一个元素,那么它就不存在之前的元素。利用双指针,先让快指针走n+1步,然后快慢同时走,这样当快指针指到NULL时,慢指针刚好指到倒数第n个之前的呢个节点,便可以进行删除操作。当使用虚拟头节点时,所有节点(包括头节点)都有前一个节点和下一个节点,这样对所有节点的操作变得一致,不需要额外判断头节点。快指针每次走两步,慢指针每次走一步,快指针就相对于慢指针每次走一步,若相遇,就一。
2023-03-27 20:13:58 83
原创 代码随想录笔记【数组和链表】(一)
slow = 0;fast++){= val){//当快指针指到需要删除的元素时,慢指针不动,快指针加一,实现覆盖slow++;//慢指针即为新数组的大小有序数组的平方(两个指针向中间聚集)若想将平方后的数据从小到大排序,说明最大值一定在左边界或右边界,因此从两边向中间推进,以此排序。i<=j;//for循环第三部分可以空着,因为需要判断两个哪个大一点在做i++或j--的行动;小于等于是因为i和j相遇时,相遇的这个数也应该判断。k--;I++;else{j--;
2023-03-20 16:40:59 49 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人