CodeTop
CodeTop网站顺序刷题
小雨的杰拉多尼
Get busy living, or get busy dying
展开
-
【CodeTop刷题日记7】三数之和
三数之和这个题我感觉也是那种不看一次题解就基本不会这么想的题(对于我来说)虽然是双指针,但是除了这俩 l 和 r 遍历的是另一个值因此相当于是三指针一、读题我一开始还以为是深度搜索,但太菜了没完全写对看评论区都在说深搜会有仨样例不过不管了,以后做会了深搜再回头试试这个题吧二、思路我能想到先排序,因为这个是返回值,和索引没关系参考了一个python题解的方式:就是遍历到的端点右侧是一个区间,我把它叫做 收缩区间因为是有序的所以以下特性:(区间左端点l值 + 和区间右端点r值)大于0原创 2021-11-27 12:37:18 · 1163 阅读 · 3 评论 -
【CodeTop刷题日记6】两数之和
两数之和为下一个三数之和的题做准备一、读题二、naive 思考因为考虑到返回的是索引,所以我上来没有采取直接排序的方法这个题简单的一点在于它只有一组满足的样例,所以一旦找到返回就行了利用双指针进行查找即可class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> rs; if(nums.siz原创 2021-11-27 11:30:41 · 163 阅读 · 0 评论 -
【CodeTop刷题日记5】 K 个一组翻转链表
K 个一组翻转链表关于链表的题还是挺有规律性可言的只要搞清楚内部到底是怎么个变化法,就还是能写出来的只不过就是简洁不简洁的问题一、读题其实只要找个实例自己连一连就知道咋弄的了,就像这:二、数据结构一开始的想法是:在反转链表的同时,还要考虑是否满足条件翻转(够k个)所以就有了存储节点指针再判断的念头就想着用一个k个容量的容器去存储,满了就反转每次清空,不满且p指到空了就拉倒三、细节走一走就会发现,有几个关键的量是需要记下来的:要返回的函数头(newhead)如果不翻转就是he原创 2021-11-26 21:14:12 · 541 阅读 · 0 评论 -
【CodeTop刷题日记4】数组中的第K个最大元素
2022-10-10更新利用y总的快排模版更新代替了TopK问题,这样记忆更加方便。只不过以下是升序,因此求的是第K小的数(只需改一下快排的大小符号即可)原创 2021-11-26 11:31:14 · 292 阅读 · 0 评论 -
【CodeTop刷题日记番外】快速排序
快速排序因为下一道题用到了快排的划分,我就顺便回忆一下快排的过程快排就是选定一个pivotkey划分值,然后每次划分都将其放入正确的位置,然后其左侧皆小于pivotkey,右侧皆大于pivotkey(升序的情况)关于pivotkey的选择一般简单的话就直接选待划分区域的左端点就行 q[l]但为了提高效率,以免让其沦为O(n^2)的算法,有其他选定方式比如随机选、中值选等我这里就简单选左端点好了#include<iostream>using namespace std;cons原创 2021-11-26 10:33:31 · 161 阅读 · 0 评论 -
【CodeTop刷题日记3】无重复字符的最长子串
题目3 无重复字符的最长子串一、理解题意首先明确是最长子串,而不是子序列也就是必须是连续的串二、找规律先想想有什么规律,能让程序走起来一般字符串的子串问题应该都是两个指针顺着走一下,会发现一旦在前的右指针遇到的新字符是重复的那么就需要一直左移左指针直到重复的出去了才能再让右指针继续走三、数据结构需要判断字符的是否重复,那就可以用无序的set来判断就行了用set的find方法,查找某个字符是否到end就可以判断了(其实我也是刚知道,小本本记下)PS:还有就是要记下unordered原创 2021-11-25 21:18:58 · 272 阅读 · 0 评论 -
【CodeTop刷题日记2】 LRU缓存机制
题目2 LRU缓存机制这个题的困难点在于数据结构的利用一看到查找O(1),就要想到哈希表。但是插入和删除操作在O(1)内完成需要链表,但查找O(n)。因此二者结合//双向链表节点struct DoubleLinkedNode{ int key; //这一项是为了删除节点时找回hash表那一项,双向映射 int value; DoubleLinkedNode* pre; DoubleLinkedNode* nxt; DoubleLinkedNode()原创 2021-11-24 21:57:26 · 111 阅读 · 0 评论 -
【CodeTop刷题日记1】 反转链表
说明计划用C++,按照CodeTop网站进行刷题链接在此:CodeTop此网站将LeetCode中的面试高频题目,进行降序排列。还可以按照欲面试公司进行筛选因为近期并无面试计划,只是做准备,所以即按照默认顺序做题已经很久没碰代码了,怕手生题目1 反转链表算是最经典的题目了吧,之前做过很多次,知道有很多种方法但是还是不能保证每次都能做对这个题当然可以再创建一个链表,然后再一个个头插法复制但这样一个是容易出错,一个是还占用了存储空间但要是想保留原来的链表那另说在这我还是采用在原链原创 2021-11-24 11:09:29 · 730 阅读 · 0 评论