随笔分类 -  代码随想录二刷

为了加深自己对代码的印象而成 方便自己以后忘记方法论时回头可以找得到当时我的思想
摘要:✔做题思路 or 感想 : 就借由这道题来理解一下kmp算法吧 kmp算法的操作过程我觉得有句话很合适 :KMP 算法永不回退 目标字符串 的指针 i,不走回头路(不会重复扫描 目标字符串),而是借助 next 数组中储存的信息把 模板字符串 移到正确的位置继续匹配 kmp算法的重要点是计算next 阅读全文
posted @ 2022-03-24 20:53 北原春希 阅读(37) 评论(0) 推荐(0) 编辑
摘要:✔做题思路 or 感想 : 乍一看很猛,其实思路就仨 把整个字符串反转 删除多余空格 然后再把每一个单词反转 反转,删除空格用的都是双指针法,太香了 数组中的删除操作总体思想虽然是把符合条件的数往前面推,但这个"推"并不是交换值!而是直接往前面把不符合条件的值直接替换了!!! class Solut 阅读全文
posted @ 2022-03-24 14:37 北原春希 阅读(41) 评论(0) 推荐(0) 编辑
摘要:✔做题思路 or 感想 : 1.这道题乍一看要分三种情况,实际上只用分两种情况 : 当剩下字符小于k个时,反转剩下所有字符 否则就反转前k个字符 2.要记得 reverse 函数的用法,是 reverse(前, 后),而不是 字符串.reverse(巴拉巴拉) 3.如果说要按照固定规律一段一段的处理 阅读全文
posted @ 2022-03-24 13:47 北原春希 阅读(29) 评论(0) 推荐(0) 编辑
摘要:✔做题思路 or 感想 : 1.利用双指针,一个指针指向前面,一个指向尾端,两个指针做着交换工作,然后不断向中心逼近 class Solution { public: void reverseString(vector<char>& s) { int left = 0, right = s.size 阅读全文
posted @ 2022-03-24 13:31 北原春希 阅读(24) 评论(0) 推荐(0) 编辑
摘要:✔做题思路 or 感想 : 1.理解了上一题的三数之和后,这一题其实也就差不多了,同样的套路,同样的方法,不过就多加了一层for的事情罢了,如果往后要求5数之和,n数之和,亦是如此了 2.这一题的思路仍然是 利用四个指针求和 + 去重操作,只要代码不写歪,大体思路都能对 class Solution 阅读全文
posted @ 2022-03-24 13:16 北原春希 阅读(42) 评论(0) 推荐(0) 编辑
摘要:做题思路 or 感想: 1,我以为二刷以后我就是开无双了,直到我遇到这道题,细节多的不谈,这种三个指针的做法我是真的忘了,三个指针也不谈,他甚至还要去重,太繁杂了 2,用三个指针来代表三个相加的数,且有大小顺序 nums[ i ] < nums[ left ] < nums[ right ] 3,要 阅读全文
posted @ 2022-03-23 21:15 北原春希 阅读(40) 评论(0) 推荐(0) 编辑
摘要:做题思路 or 感想: 1,用一个哈希表储存 A + B 的各种和的个数,把题目转化为两个数(A + B 和 C + D)之和,知道这个了以后思路就开阔很多了 2,因为这里是四个数组,所以不需要查重,直接搜,find 搜到直接符合条件就好了 1 class Solution { 2 public: 阅读全文
posted @ 2022-03-23 19:55 北原春希 阅读(37) 评论(0) 推荐(0) 编辑
摘要:做题思路 or 感想 : 1,这种 N 数之和一般是可以用哈希表来解决 2,一般找差就直接用 哈希表自带的 find 去查差值是否存在就好了 3,惊了vector并不自带 find ,平常用的都是algorithm里的,而像 map , set 都是自带 find 的,所以在力扣刷题里要用 find 阅读全文
posted @ 2022-03-23 19:39 北原春希 阅读(35) 评论(0) 推荐(0) 编辑
摘要:做题思路 or 感想 : 1,一眼暴力,但是如果纯暴力的话又太费时,所以这里用了一下set,其实某种意义上仍然是暴力? 2,set的去重很好用,把vector倒进set,再把set倒回vector就可以实现去重,但是很费时间,只能说是走头无路时的暴力解法了 1 class Solution { 2 阅读全文
posted @ 2022-03-23 19:18 北原春希 阅读(24) 评论(0) 推荐(0) 编辑
摘要:做题思路 or 感想 : 1,这里可以把题目简化为求两个字符串中的各种字符的个数是否相等,想到这个就很简单了 2,如果不是特殊情况,用map的时候尽量用 unorderde_map ,读写效率更高 1 class Solution { 2 public: 3 bool isAnagram(strin 阅读全文
posted @ 2022-03-23 19:05 北原春希 阅读(20) 评论(0) 推荐(0) 编辑
摘要:做题思路 or 感想 : 1,这一题用快慢指针来判断是否有环,快慢指针同一起点,速度不同,如果有环,则必定会相遇 2,第二个有意思的点就是数论环节来弄出环入口了,真的太精妙了,但因为我表述能力不好,这里就不谈了 1 /** 2 * Definition for singly-linked list. 阅读全文
posted @ 2022-03-23 18:54 北原春希 阅读(22) 评论(0) 推荐(0) 编辑
摘要:做题思路 or 感想: 1,用的还是快慢指针,不得不说我一开始真的没想到用快慢指针卡成一个“直尺”这样去找前n的元素,真的太秒了这个思路 2,这里是需要虚拟头节点的,只要有删除操作都需要,因为头节点也可能是删除目标 3,这里的快指针最后是要指向 nullptr 的,不能指向一个最后一个节点,为了打消 阅读全文
posted @ 2022-03-23 18:29 北原春希 阅读(37) 评论(0) 推荐(0) 编辑
摘要:做题思路 or 感想: 1,用双指针法便可解决 2,这种链表的题自己画一下图就很快理解了,相当有意思啊 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next 阅读全文
posted @ 2022-03-23 17:29 北原春希 阅读(24) 评论(0) 推荐(0) 编辑
摘要:做题思路: 1,就考察了链表的基础操作,题目要求什么就照做就好了 1 class MyLinkedList { 2 public: 3 struct LinkedList { //甚至还先需要自己整一个链表的结构体,平时做题做惯了这里会忘先弄结构体了 4 int val; 5 LinkedList* 阅读全文
posted @ 2022-03-23 17:16 北原春希 阅读(27) 评论(0) 推荐(0) 编辑
摘要:做题思路: 1,因为要删掉一个节点,要将他的前一个节点指向目标节点的后一个节点,即是与目标节点的前一个节点息息相关,但头节点又没有前一个节点,所以如果正常做要分类讨论 但这里用一个虚拟头节点来指向头节点,这样头节点就有了前一个节点。 2,因为我是c++,所以上面的做法会浪费空间,要手动删除内存空间, 阅读全文
posted @ 2022-03-23 16:38 北原春希 阅读(22) 评论(0) 推荐(0) 编辑
摘要:做题思路: 1,这种题一般我是先自己画一下n = 2, n = 3, n = 4, n = 5的图,然后根据图的规律来写 2,虽然找到了规律,但是我觉得这道题还是考的是做题者对自己代码的操控能力..... 3,最后,这道题的代码是单纯的我想到那就写到那的代码,就仅仅是将自己头中简单的思想具体化,所以 阅读全文
posted @ 2022-03-23 16:27 北原春希 阅读(24) 评论(0) 推荐(0) 编辑
摘要:一眼暴力 一,暴力做题思路: 暴力没什么好说的,就纯暴力解就对了 1 class Solution { 2 public: 3 int minSubArrayLen(int target, vector<int>& nums) { 4 int result = 99999; //为了让result的 阅读全文
posted @ 2022-03-23 11:48 北原春希 阅读(18) 评论(0) 推荐(0) 编辑
摘要:做题思路: 1.用快慢指针法可以用一个for完成两个for的事情 2.快指针去找符合条件的数,找到后交换快慢指针的值,这种做法相当于是把符合条件的数全部搬到前面来,把不符合条件的数挤到后面 class Solution { public: int removeElement(vector<int>& 阅读全文
posted @ 2022-03-23 11:18 北原春希 阅读(26) 评论(0) 推荐(0) 编辑
摘要:做题思路: 1.要注意先确定二分的区间,这里是 [ left, right ] 两边闭合 2.因为left = right 在 [ left, right ] 中是有意义的,所以二分法的循环判断条件应当是 left <= right class Solution { public: int sear 阅读全文
posted @ 2022-03-23 11:10 北原春希 阅读(33) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示