自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

It's the Climb

Ain't no mountain high enough

  • 博客(301)
  • 收藏
  • 关注

原创 我的互联网秋招经历

互联网秋招 top3硕 推荐算法岗

2022-10-28 01:03:20 686 3

原创 拓扑排序 - 链式前向星 - 模板回顾

采用链式前向星建图,采用拓扑排序算法

2022-03-09 16:15:29 276

原创 蓝桥杯刷题回顾

【大数要在过程中取余】【蓝桥杯-结果填空】斐波那契数列_It's the Climb-CSDN博客相信小伙伴们都学过斐波那契数列,它是这样的一个数列:1,1,2,3,5,8,13,21\cdots1,1,2,3,5,8,13,21⋯。用f_nfn​表示斐波那契数列的第nn项,则有:f_1 = f_2 = 1f1​=f2​=1,f_n = f_{n-1} + f_{n-2} (n>2)fn​=fn−1​+fn−2​(n>2)。输入一个nn,求出f_nfn​对https://blog....

2021-10-06 21:37:07 330

原创 Paper Notes about 3D Shape

【PoseContrast】PoseContrast: Class-Agnostic Object Viewpoint Estimation in the Wild with Pose-Aware Contrastive Learning1、任务对single image中的object进行pose estimation2、创新点(1)class-agnostic之前的任务都是要提前知道/预测object的类别,然后再联合地进行pose estimation,但这里无需知道objec

2021-10-04 22:23:15 345

转载 向量和矩阵的范数 理解

转载自http://www.zhihu.com/question/20473040/answer/102907063可以从函数、几何与矩阵的角度去理解范数。我们都知道,函数与几何图形往往是有对应关系的,这个很好想象,特别是在三维以下的空间内,函数是几何图像的数学概括,而几何图像是函数的高度形象化,比如一个函数对应几何空间上若干点组成的图形。但当函数与几何超出三维空间时,就难以获得较...

2019-11-04 16:36:34 499

转载 idea java配置问题

mark as source即可 Sources一般用于标注类似src这种可编译目录。有时候我们不单单项目的src目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有Sources这种可编译目录才可以新建 Java 类和包,这一点需要牢记。 ...

2019-10-27 10:38:09 187

原创 【英语】口语积累

Is now a good time? cut him in? 雇佣 pander to 阿谀奉承 slender frame 瘦的跟竹竿一样 ensure your packets get delivered un-sniffed. 保证数据包无损传送 equity 股份 so forth 诸如此类 ruthless 无情的 jack of all trades 万金油 t...

2019-07-29 22:54:54 305

原创 【二叉树】求最大叶子间距

大致思路:根据举例子模拟找规律,发现需要去对每个结点求“左子树高度+右子树高度”,如左图=1+1=2是最大的,右图2+2=4是最大的。这里容易只求根节点的,但如右图这种情况,其实要对每个结点求,取最大值。实现上,我是定义BTNode结构体(left和right都是指针),然后求高度就是递归来做,同时在函数中更新高度和的最大值。别人题解里是只有int left;int right...

2019-07-02 06:54:46 622

原创 【图形题】不要慌,慢慢来

这种构造图形矩阵的题,不要慌,慢慢来!找规律,找边界。很明显,就是边界的灵活移动,可以不从中间开始,可以从左上方开始~int m[15][15];int main(){ int c=10*10; //左上方的数 int l=1,r=10,u=1,d=10; //左 右 上 下的边界 int x=1,y=1; while(c>0) { for(int i=...

2019-07-01 19:59:53 325 1

原创 【字符串】中缀->后缀->计算表达式的值

#include<iostream>using namespace std;#include<stack>#define maxSize 100stack<char> stack1; //栈来放后缀表达式的符号char suffix[maxSize]; //转化后的后缀表达式 int n=-1; //表示suffix字符数组的index,初始化...

2019-07-01 16:45:52 257

原创 关于大数的存储和处理

因为感觉好像很容易遇到大数的题目,所以这里要再强调一下大数怎么存、怎么处理。首先是存储,肯定是要用char数组在输入数据的时候就拿来存储的,然后涉及运算的时候就是我之前博客里的加减乘除、阶乘的做法。其实如果要排序啥的更方便,可以记住以下结构体的定义:struct numNode{ int isPositive; int digit; //位数 char ...

2019-07-01 16:31:50 1037

原创 C++读取txt文件

按行读取字符串,并(追加)写入另一个文件注意:ifstream和ofstream的定义,ofstream里的ios::app,以及getline函数,“<<”重定向的使用。int main(){ ifstream myfile("in.txt"); ofstream outfile("out.txt",ios::app); //ios::app指追加写入 string...

2019-07-01 15:49:44 21566 1

原创 【最短路径】披着最短路径外衣的最小生成树

大致思路(via题解):注意到第k条路径的长度为2^K,则第k条路径的长度会大于前k-1条路径的总和。由此我们可知两个推断:(1)在添加第k条路径时,如果路径k连接的两个城市A 、B已经通过其他路径间接的连通了,那么第k条路径绝对不是AB间的最短路径(第k条路径之后的路径也不可能有比当前AB路径更短的路径了,因为第k条路径的长度会大于前k-1条路径的总和)(2)在添加第k条路径...

2019-06-30 18:34:18 215

原创 【kruscal求最小生成树】继续畅通工程

大致思路:Kruscal求最小生成树用到的知识:图的边的结构体、按边权排序、并查集(不产生回路)但是这道题仍然需要精心思考,原因是有一些边是“已经存在的”,那么在计算最小生成树成本的时候应该只考虑未修成的边。要注意两个易错点: ① 多组数据,并查集father数组要初始化,一些全局数组要初始化。 ② 由于有些边已经存在,要先对已存在的边进行并查集的处理,否则在边权排序的时候它排到后...

2019-06-30 16:38:03 182

原创 【dfs】机器人的运动范围

大致思路:显然用dfs,但是我没注意到:①dfs也要vis数组!!!而且,我其实常用的是第一次传第一个点进去,所以要在主函数里先把第一个点的vis设1!!!!②也是本题的重点:问的是“能够到达多少个格子”,这个意思不是说一条路径上最多能有多少个格子,而是若干条路径上,只要能走到就算!所以,这里并不是在dfs前先vis=1,之后就立刻vis=0。因为:以前的思路是另一条路线可以去走其...

2019-06-29 20:50:39 260

原创 【数位】reverse integer

反转数位。大致思路:对负数要有处理。关键是如何判断溢出(这里要理解,传进来的int型参数比如1000000003是不溢出的,但翻转后的3000000001溢出了)。看了大佬的方法,就是:判断这一次得到的res能不能返回去得到上一次的res,如果返回去不相等,则说明这一次的res溢出了。AC代码:class Solution {public: int revers...

2019-06-25 17:03:24 141

原创 【数位】palindrome number

用常数空间,判断一个数是否是回文的。大致思路:我就是从数位的思想上一位一位去比较的,从低位开始比较是简单的,不过要想从高位开始,得先知道这个数是几位的。我才用的方法是让Left=1,每次*=10,如果这个数/left==0即可。也就是这个x的最高位也就是Left级别的(比如5000,left=10000)不过要注意溢出,尤其是Left容易溢出,所以用long long 来装!A...

2019-06-25 16:38:35 105

原创 【字符串】最长公共前缀

求字符串数组里的字符串公共最长前缀大致思路:先对字符串排序,然后只需要比较第一个和最后一个的字符串,这两个字符串必定是差距最大的两个(因为排序首先从第一个开始排),如果首字符不等,就返回空,否则,说明所有字符串的首字符相等,那么接着判断第二个字符。AC代码:class Solution {public: string longestCommonPrefix(ve...

2019-06-23 16:14:38 2305

原创 【set存储:去重+排序】4sum

从给定的数组中找到4个数的组合,和==target。组合不能重复,按非递减顺序。大致思路:要或不要,dfs。但是AC代码(别人的题解)里的剪枝很棒,结合了“按非递减顺序——递增顺序”的题意。另外,对于重复的问题,使用的是set来对vector<int>型的变量去重(比去find那种要快,而且不需要对结果重新排序)AC代码:class Solution { ...

2019-06-22 21:58:30 482

转载 关于||和&&的短路

viahttps://blog.csdn.net/qq_40946921/article/details/88323975总结要点:||前者为true不执行后者,&&前者为false不执行后者。 &&的优先级高于||,但是优先级其实只是加一层括号的作用——结合次序,并非运算顺序。...

2019-06-22 21:31:44 958

原创 【字符串】生成匹配的括号

给出括号对数n,生成这n对匹配括号的全排列大致思路:我用的是dfs,做出来了。看到了一种更简单的方法:只要保证右括号个数不大于左括号就行了(若当前左括号个数>右括号个数,可加右括号)!AC代码:链接:https://www.nowcoder.com/questionTerminal/c9addb265cdf4cdd92c092c655d164ca来源:牛客网cla...

2019-06-21 21:02:01 446

原创 【链表*】交换结点

只要涉及到链表结点的删除或交换,就必须新建虚拟头结点newHead->next=head,让f指针指向newHead作为前置结点指针(删除和交换都需要前置结点指针的),newHead当然不动,程序最后返回的是newHead->next。两个两个地交换结点两个两个地就地交换结点。大致思路:一定要先新建一个虚拟结点newHead,newHead->nex...

2019-06-21 19:29:26 5543

原创 【数组】remove element 删除数组元素(不通过前移)

在数组中就地移除==value的元素,并且不用管移除后的顺序稳定性。大致思路:如果要前移来删除数组元素的话要O(n^2)。这里的方法是——两个指针(发现两个指针在“就地处决”真的很重要诶...),一个一直指向最后一个元素,要移除的元素就和这最后一个元素换位置,并且把数组长度--相当于最后一个元素指针往前移一个。感觉是面试容易问到的经典题目。AC代码:...

2019-06-19 16:49:53 1572

原创 【字符串】substring with concatenation

去找一个字符串包含L中所有单词的拼接组合的子串的下标。需要注意:L中的单词可重复!大致思路:就是遍历起点i,然后依次去匹配,必须把L中的单词都连续匹配完而且都只出现1次(考虑到L中的单词可重复,就转化为——在子串中出现的单词次数要==在L中该单词出现的次数,用两个map数组来比较)。编程上,求子串用到了str.substr(起点下标,长度),注意第二个参数是长度,我之前弄成终点下标...

2019-06-19 16:32:58 158

原创 【理解题意】next permutation 下一个字典序更大的排列

求下一个字典序更大的排列。大致思路:需要理解题意。其实对于数字的序列来说,只关注2个数,其实要么是升序,要么是降序,要么是相等。这里不用考虑相等了,因为相等的话字典序也一样,那么就看如果原来是降序,比如1 3 2 1中后三个是降序,下一个字典序更大的排列是2 1 13,应该怎么求出来呢?可以发现,先把后三个降序的排成升序,但显然1 1 2 3的字典序是小于原来的1 3 2 1的,...

2019-06-19 14:10:17 886

原创 【栈】括号匹配

问最长的括号匹配序列有多长。这个和“判断一个序列中的括号是否匹配”区分开,那道题就是一个栈来存'(',遇到')'则判断栈是不是空的,是空的就return false,不是空的就出栈。最后判断栈是不是空的,是空才true。大致思路:这道题的关键在于,栈存储的是下标,而不是'(',毕竟题目要求的是长度嘛。这个思路必须要理解清楚:如果对于没有和之前匹配上的')',标记它所在的位置为l...

2019-06-19 10:59:39 153

原创 【STL函数】search for a range

大致思路:可以用二分法解决,不过也可以直接用lower_bound和upper_boundAC代码:class Solution {public: vector<int> searchRange(int A[], int n, int target) { vector<int> res; if(n==0) ...

2019-06-19 10:06:40 126

原创 【数组】first missing positive

正数要连续起来,找到第一个缺失的正数。大致思路:刚开始想着用动态规划什么的,发现要O(n)即不能sort,而且不能用空间,所以dp数组打扰了。一看题解....好简单....:Put each number in its right place.For example:When we find 5, then swap it with A[4].At last, th...

2019-06-18 21:24:53 130

原创 【模拟过程找规律】trapping rain water

如图。大致思路:理解题意,模拟过程,找到规律。先找到最高的,那么左边就从左往右看,右边从右往左看。AC代码:class Solution {public: int trap(int A[], int n) { if(n==0) return 0; if(n==1 || n==2) r...

2019-06-18 21:07:27 135

原创 【字符串】wildcard matching 匹配*?正则表达式

匹配一个字符串是否满足另一个字符串给出的*?表达式,注意*可以代替一切字符(包括空),?可以代替单个字符。大致思路:匹配流程我是写出来了的,最简单的是比较相应的单个字母或?,难点在于不知道‘*’能代替s里的多少个字符(包括空)。解决想法就是说,先代替0个试试,走到后面不行了再回来代替1个。因此,需要两个指针indexstar和indexmatch来记录。indexstar记录在正则...

2019-06-18 20:07:25 233

原创 【二分快速幂】pow x-n

大致思路:温习二分快速幂的写法。注意,n有可能为负数!AC代码:class Solution {public: double pow(double x, int n) { if(n==0) return 1; if(n==1) return x; if(n<0) //注...

2019-06-18 16:46:39 168

原创 【拖累思想】maximum subArray 求最大子数组

求(连续)子数组的最大和大致思路:一次AC,用到了我的“拖累思想”。AC代码:class Solution {public: int maxSubArray(int A[], int n) { if(n==0) return 0; if(n==1) return A[0]; ...

2019-06-18 16:23:02 152

原创 【找规律】求123456789的第几个全排列

1~n(最多n=9即123456789),让你来求第K个全排列。(题中告诉你规律:1234...n的全排列一共有n!个)大致思路:举例子找规律的题,见下面这个例子:以n = 4, k = 17的情况来分析,所有排列组合情况如下:123412431324134214231432213421432314234124132431312431423214...

2019-06-18 15:26:06 3525

原创 【链表】rotate list

将最右边的K个元素拼接到最前面去。大致思路:我举了个1->2->3的例子模拟了一下,发现就是先一遍循环得到链表长度和链表最后一个结点指针tail,再来一遍循环直到n-k个元素,那么它的下一个元素就作为结果链表的头,让它断开,再把tail->next=head; 最后返回结果链表的头。思路正确。我发现我现在的链表题编程,需要注意的两个点:① 要找准返回的头在哪里...

2019-06-18 11:16:34 113

原创 【动态规划】edit distance 一个字符串->另一个字符串的编辑距离

一个字符串到另一个字符串,3种操作(增加、删除、替换),问要做多少步。大致思路:这道题的动态规划让我理解了一个小时。。。。。来看方法:理解的基础是要get一个点:f[i][j]表示word1[0..i]已经成功转换成word2[0...j]了的步数!所以,在聚焦于看一个字符时,来想想是怎么达到f[i][j]这个目的的,从而推出状态转移。就三种方法嘛:替换 删除 添加。那...

2019-06-17 20:44:30 205

原创 【数组】sort colors

在原数组上不用sort函数来进行这样的一块儿一块儿的排序。大致思路:因为题目明确说用不要开辅助空间,也就是要在原数组上进行操作。我第一反应是:两个指针fast和slow,果然,这是正确的!因为题目说的场景也简单,直接手写一个例子,模拟快慢指针,找到规律,一次AC。AC代码:class Solution {public: void sortColors(int A...

2019-06-17 16:54:33 134

原创 【dfs“要”或“不要”】求子集;求组合

求一个序列的所有子集。大致思路:也是用dfs来做的,因为其实就是“要”或“不要”的问题,这是dfs可以解决的典型问题!注意:sort(start,end,排序方法),一般来说end=start+size(),但是vector有.begin和.end()指针就直接用呗。 vector的push_back是添加元素到末尾,那么pop_back则是删除末尾元素!...

2019-06-17 14:58:36 503

原创 【dfs】word search

典型的dfs,去找这个阵型中有没有一条路是给出的单词。大致思路:dfs。注意点:vis数组别忘了写!!!!!if判断中要判断边界、题目条件还要判断是否访问过!!然后,还要在dfs的上文置vis[xx][yy]=1(尤其是如果在主函数中第一次调用,也要记得),在dfs的下文还原vis[xx][yy]=0,表示不走这条路,换一条路!AC代码:class Solution {pu...

2019-06-17 14:18:30 177

原创 【数组】删除重复元素(最多重复两次)

只能允许最多重复两次,修改数组删除多余元素,并且返回删除后的数组长度。大致思路:刚开始想的是一个哈希数组来存出现次数,然后判断>2次的时候通过前移后面的部分来删除该元素。确实时间复杂度是O(n^2)太高了。还是要仔细读题!这是一个sorted array,也就是判断一个元素是否出现了两次,只需要看它前面的前面那个元素是否和它一样,一样则不要它,不一样则说明它还没有重复出现到两...

2019-06-17 11:30:41 1489

原创 【链表】删除重复结点

只是需要删除重复的多余结点,保留1个就行。大致思路:只需要在当前结点来进行处理就行,因为只是删除多余的,也不用担心头结点会被删去导致返回的不对的错误。一次AC。AC代码:class Solution {public: ListNode *deleteDuplicates(ListNode *head) { //看结点后面的值是不是一样,一样就跳过,直...

2019-06-17 10:41:12 476

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除