11 2021 档案

摘要:一、题目 二、算法 使用双指针 class Solution { public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int>> result; sort(nums.begin(), n 阅读全文
posted @ 2021-11-26 23:46 星光夜 阅读(50) 评论(0) 推荐(0)
摘要:一、题目 二、分析 主要难点在于去重,而且补充元素去重,而是排列去重,这个用哈希来实现其实我感觉比较困难,后来看他们推荐的算法,还是采用的双指针逼近来完成这道题目。 算法流程如下 算法复杂度分析如下 三、代码 class Solution { public: vector<vector<int>> 阅读全文
posted @ 2021-11-24 11:03 星光夜 阅读(67) 评论(0) 推荐(0)
摘要:一、题目 二、题目分析 这个其实跟之前那道四数之和的题目很相似,我们只需要使用一个map来记录其中一个字符串的字母以及它出现的次数,然后对于另外字符串,去遍历就好了。 因为最理想的情况是,赎金信上面的字符串需要是杂志上的字符串的子集,所以这个时候我采取的方式是遍历杂志的字符串的数目,然后再对赎金信上 阅读全文
posted @ 2021-11-23 11:25 星光夜 阅读(58) 评论(0) 推荐(0)
摘要:一、题目 二、算法分析 这里我们需要注意的是,是四个不同的数组,而且可能每个数组里面有重复的元素。但是我们需要返回的只有满足条件的数目。 按照别人的分析如下: 最好的方法是先使用一个Hashmap存储两个数组元素之和,并统计其出现的数目,然后遍历另外两个数组的元素之和。这样的算法的复杂度是最小的,只 阅读全文
posted @ 2021-11-22 14:16 星光夜 阅读(52) 评论(0) 推荐(0)
摘要:1、题目 2、代码分析 主要是参考代码。 这里我的思维陷入了误区,之间用了很多双指针前后逼近的方法,然后觉得排序之后也可以这么做,一般来说是可以的,但是麻烦在于这里需要排序之前的序号。 这里可能使用python的话,会简单一点,但是使用vector好像需要自己手动去找。 不管了,这里用map去查找比 阅读全文
posted @ 2021-11-21 18:03 星光夜 阅读(47) 评论(0) 推荐(0)
摘要:1、题目描述 2、分析 我本来是想着,如果是循环的话,就直接设置一个数字判断这种情况但是其实并没有将循环给判断出来。 总的思路来说,就利用数组计算一次,该数字所有位置上的数目平方和。 如果等于1则完成验算,如果运算次数超过三百则也停止,返回False。 代码如下: class Solution { 阅读全文
posted @ 2021-11-20 19:49 星光夜 阅读(51) 评论(0) 推荐(0)
摘要:一、题目 二、题目分析 这个让我想起来之前有一道题目的算法分析,就是对于两个数组分别排序,然后使用不同的指针,如果不相等则不断从前向后移动,则可以一次遍历就解决了问题,但是可能排序是需要一定的时间的,但是总体来说时间复杂度还是O(m+n)的。 代码如下: class Solution { publi 阅读全文
posted @ 2021-11-19 00:02 星光夜 阅读(46) 评论(0) 推荐(0)
摘要:一、题目 二、参考代码 使用两个遍历和一个数组,数组大小为26,用来记录字母出现的次数,这样的想法很好,我当时想的时候,以为所有小写字母数字为24,所以导致内存访问错误。 参考代码如下: class Solution { public: bool isAnagram(string s, string 阅读全文
posted @ 2021-11-14 20:39 星光夜 阅读(51) 评论(0) 推荐(0)
摘要:一、题目 二、分析 这个题目很有意思,最开始我也没有想到很好的解法,但是发现题目使用的双指针方法很有效,就是利用快慢指针的方法去判断是否存在环,如果存在则使用其判断具体位置,这个和删除倒数第几个节点的那道题目很类似。 具体题目可以看这个分析: 题目分析 三、代码 /** * Definition f 阅读全文
posted @ 2021-11-13 20:48 星光夜 阅读(59) 评论(0) 推荐(0)
摘要:一、题目 这个题目目标太冗余了,其实我们要做就是返回相交的节点指针 二、分析 参考的方法,主要是确定两个链表对齐位置,逐个向后面比较,返回相等的指针即可 三、参考代码 一种比较简洁的解法: /** * Definition for singly-linked list. * struct ListN 阅读全文
posted @ 2021-11-11 16:38 星光夜 阅读(49) 评论(0) 推荐(0)
摘要:一、题目 二、分析 我最开始的想法是,先记录链表长度,然后确定对应节点的序号,然后删除,需要删除两个部分,空间复杂度为O(1),时间复杂度为O(2*n); 代码如下,需要注意如果删除节点出门在头节点的情况。 /** * Definition for singly-linked list. * str 阅读全文
posted @ 2021-11-10 23:32 星光夜 阅读(58) 评论(0) 推荐(0)
摘要:一、题目 二、算法分析 我主要想着通过while循环自己交换,前面两个单独考虑,后面的都是一样的处理。 因为前面的两个需要交换两次,后面的需要交换三次 /** * Definition for singly-linked list. * struct ListNode { * int val; * 阅读全文
posted @ 2021-11-09 12:11 星光夜 阅读(61) 评论(0) 推荐(0)
摘要:一、题目 二、想法分析 我的直接的一个想法是,可以设置一个vector,然后把数据读取出来,然后重新赋值就好了。 另外需要注意一下,如果是存在头节点,那么判断链表是否为空的时候,可以如下判断: if(head->next == NULL) 如果链表不存在头节点,那么可以直接判断: if(head = 阅读全文
posted @ 2021-11-08 17:28 星光夜 阅读(79) 评论(0) 推荐(0)
摘要:一、题目描述 题目 二、分析 其实只是一个对情况判断就好了,主要是对头结点的判断,对空的情况的判断,然后就是对循环的判断,当然这个也可以用迭代的方法来做。 初始的时候我的代码如下: /** * Definition for singly-linked list. * struct ListNode 阅读全文
posted @ 2021-11-06 19:08 星光夜 阅读(46) 评论(0) 推荐(0)
摘要:一、题目 二、分析 填入的数字很好理解,就是从1到n^2。 但是有个麻烦在于如何按照题目逻辑改变下标。 经过观察我发现,其实每次填写可以看做多个回字框。并且每个最外层回字框只有四种方向,上下左右。这个完全可以根据元素在这个回字框所处的位置判断。 所以我要做的即是,对于每一个回字框,根据元素在其中所处 阅读全文
posted @ 2021-11-05 11:22 星光夜 阅读(59) 评论(0) 推荐(0)
摘要:1、题目 2、分析 我之前分析的时候分析错了,其实是对题目理解不清,我以为的连续子数组,是指的不仅仅在空间上连续,而且是在内容上连续,比如1,2,3,4,或者是4,3,2,1。 这种理解就导致了做题很复杂。 官方给的有几种解决办法,一种是暴力搜索,一种是二分查找,一种是滑动窗口。 推荐第二种和第三种 阅读全文
posted @ 2021-11-04 10:54 星光夜 阅读(38) 评论(0) 推荐(0)
摘要:一、题目 二、分析代码 我的想法其实很直观,就是先求一下绝对值,然后排序,然后求平方 class Solution { public: vector<int> sortedSquares(vector<int>& nums) { for( auto& i : nums){ if(i < 0){ i 阅读全文
posted @ 2021-11-03 15:46 星光夜 阅读(57) 评论(0) 推荐(0)
摘要:一、题目 题目链接: https://leetcode-cn.com/problems/remove-element/ 二、分析与代码 这个其实跟之前的题目,查找重复元素,很类似,我就想着逐个遍历就好了,不符合要求的放到最后,最后的那个放到最前面。 class Solution { public: 阅读全文
posted @ 2021-11-03 15:29 星光夜 阅读(56) 评论(0) 推荐(0)
摘要:一、题目 二、思考方法 2.1 偷懒方法 最偷懒的方法是直接使用数组的查找函数 class Solution { public: int search(vector<int>& nums, int target) { vector<int>::iterator result_loc = find(n 阅读全文
posted @ 2021-11-02 10:22 星光夜 阅读(48) 评论(0) 推荐(0)
摘要:一、题目描述 二、想法 题目有几个关键点需要注意,第一个是,得到的结果,四个数字的组合不能重复。第二个是,同一个组合里面,数字可以重复 本来我的想法是先做遍历,然后对结果进行一个排序。 但是想了想这样的话可能会造成算法的低效。 所以较好的一个结果是先排序,然后固定第一个数字和第二个数字,对三四数字进 阅读全文
posted @ 2021-11-01 10:33 星光夜 阅读(49) 评论(0) 推荐(0)