摘要:
做题思路 or 感想: 1,我以为二刷以后我就是开无双了,直到我遇到这道题,细节多的不谈,这种三个指针的做法我是真的忘了,三个指针也不谈,他甚至还要去重,太繁杂了 2,用三个指针来代表三个相加的数,且有大小顺序 nums[ i ] < nums[ left ] < nums[ right ] 3,要 阅读全文
posted @ 2022-03-23 21:15
北原春希
阅读(54)
评论(0)
推荐(0)
摘要:
做题思路 or 感想: 1,用一个哈希表储存 A + B 的各种和的个数,把题目转化为两个数(A + B 和 C + D)之和,知道这个了以后思路就开阔很多了 2,因为这里是四个数组,所以不需要查重,直接搜,find 搜到直接符合条件就好了 1 class Solution { 2 public: 阅读全文
posted @ 2022-03-23 19:55
北原春希
阅读(50)
评论(0)
推荐(0)
摘要:
做题思路 or 感想 : 1,这种 N 数之和一般是可以用哈希表来解决 2,一般找差就直接用 哈希表自带的 find 去查差值是否存在就好了 3,惊了vector并不自带 find ,平常用的都是algorithm里的,而像 map , set 都是自带 find 的,所以在力扣刷题里要用 find 阅读全文
posted @ 2022-03-23 19:39
北原春希
阅读(43)
评论(0)
推荐(0)
摘要:
做题思路 or 感想 : 1,一眼暴力,但是如果纯暴力的话又太费时,所以这里用了一下set,其实某种意义上仍然是暴力? 2,set的去重很好用,把vector倒进set,再把set倒回vector就可以实现去重,但是很费时间,只能说是走头无路时的暴力解法了 1 class Solution { 2 阅读全文
posted @ 2022-03-23 19:18
北原春希
阅读(34)
评论(0)
推荐(0)
摘要:
做题思路 or 感想 : 1,这里可以把题目简化为求两个字符串中的各种字符的个数是否相等,想到这个就很简单了 2,如果不是特殊情况,用map的时候尽量用 unorderde_map ,读写效率更高 1 class Solution { 2 public: 3 bool isAnagram(strin 阅读全文
posted @ 2022-03-23 19:05
北原春希
阅读(27)
评论(0)
推荐(0)
摘要:
做题思路 or 感想 : 1,这一题用快慢指针来判断是否有环,快慢指针同一起点,速度不同,如果有环,则必定会相遇 2,第二个有意思的点就是数论环节来弄出环入口了,真的太精妙了,但因为我表述能力不好,这里就不谈了 1 /** 2 * Definition for singly-linked list. 阅读全文
posted @ 2022-03-23 18:54
北原春希
阅读(31)
评论(0)
推荐(0)
摘要:
做题思路 or 感想: 1,用的还是快慢指针,不得不说我一开始真的没想到用快慢指针卡成一个“直尺”这样去找前n的元素,真的太秒了这个思路 2,这里是需要虚拟头节点的,只要有删除操作都需要,因为头节点也可能是删除目标 3,这里的快指针最后是要指向 nullptr 的,不能指向一个最后一个节点,为了打消 阅读全文
posted @ 2022-03-23 18:29
北原春希
阅读(46)
评论(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
北原春希
阅读(32)
评论(0)
推荐(0)
摘要:
做题思路: 1,就考察了链表的基础操作,题目要求什么就照做就好了 1 class MyLinkedList { 2 public: 3 struct LinkedList { //甚至还先需要自己整一个链表的结构体,平时做题做惯了这里会忘先弄结构体了 4 int val; 5 LinkedList* 阅读全文
posted @ 2022-03-23 17:16
北原春希
阅读(39)
评论(0)
推荐(0)
摘要:
做题思路: 1,因为要删掉一个节点,要将他的前一个节点指向目标节点的后一个节点,即是与目标节点的前一个节点息息相关,但头节点又没有前一个节点,所以如果正常做要分类讨论 但这里用一个虚拟头节点来指向头节点,这样头节点就有了前一个节点。 2,因为我是c++,所以上面的做法会浪费空间,要手动删除内存空间, 阅读全文
posted @ 2022-03-23 16:38
北原春希
阅读(31)
评论(0)
推荐(0)
摘要:
做题思路: 1,这种题一般我是先自己画一下n = 2, n = 3, n = 4, n = 5的图,然后根据图的规律来写 2,虽然找到了规律,但是我觉得这道题还是考的是做题者对自己代码的操控能力..... 3,最后,这道题的代码是单纯的我想到那就写到那的代码,就仅仅是将自己头中简单的思想具体化,所以 阅读全文
posted @ 2022-03-23 16:27
北原春希
阅读(35)
评论(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
北原春希
阅读(27)
评论(0)
推荐(0)
摘要:
做题思路: 1.用快慢指针法可以用一个for完成两个for的事情 2.快指针去找符合条件的数,找到后交换快慢指针的值,这种做法相当于是把符合条件的数全部搬到前面来,把不符合条件的数挤到后面 class Solution { public: int removeElement(vector<int>& 阅读全文
posted @ 2022-03-23 11:18
北原春希
阅读(39)
评论(0)
推荐(0)
摘要:
做题思路: 1.要注意先确定二分的区间,这里是 [ left, right ] 两边闭合 2.因为left = right 在 [ left, right ] 中是有意义的,所以二分法的循环判断条件应当是 left <= right class Solution { public: int sear 阅读全文
posted @ 2022-03-23 11:10
北原春希
阅读(43)
评论(0)
推荐(0)

浙公网安备 33010602011771号