写在前头:
本人背景为某双非cs科班大四在读,本科期间基本都在做机器学习算法相关内容,已发表某英文水刊,按照随大流应该是要读个硕没跑了,近期考完研发现待在国内的话似乎与自己的追求相差甚远,于是大概率准备继续RUN北美,可惜雅思之前学过一段时间还没考试又不想在gap year当蹲哥,于是目前开始刷LC,目标是上岸看得过去的公司或者找个955的地方继续嗯造论文和英语。想想RUN过去也有可能和很多人一样老老实实当个SDE,奉劝大家平时看论文的时候也不要忘记刷题目不要像我一样TAT。
之后的博客可能会出现:面经、LeetCode、视觉相关。
今日八股文:
constexpr 只对指针有效
const 离变量名近就是用来修饰指针变量的,离变量名远就是用来修饰指针指向的数据,如果近的和远的都有,那么就同时修饰指针变量以及它指向的数据。
const int *p1; 指向常量
int const *p2; 指向常量
int * const p3; 常量指针
new/delete与malloc/free的区别:
首先,new/delete是C++的关键字,而malloc/free是C语言的库函数,后者使用必须指明申请内存空间的大小,对于类类型的对象,后者不会调用构造函数和析构函数
剑指 Offer 14- I. 剪绳子:
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18.
class Solution {
public:
int cuttingRope(int n) {
if(n<=3)return n-1;
int* dp=new int[n+1];
dp[1]=1;
dp[2]=2;
dp[3]=3;
for(int len=4;len<=n;len++){
for(int k=2;k<len-1;k++){
dp[len]=std::max(dp[len],dp[k]*dp[len-k]);
}
}
return dp[n];
}
};
能看懂,还是多写多练嗯造了。。
MAKE CNN GREAT AGAIN:
Diverse Image Inpainting with Bidirectional and Autoregressive Transformers
https://arxiv.org/abs/2104.12335
主要思想:Transformer 做全局语义提取
下采样和语义生成部分还是用CNN
Innovation:
缝合Diverse-GAN 自回归和mask损失
CNN在少样本下的表现和transformer的全局感受野确实可以互相弥补下
Weak:
全局特征只在生成模块前concat了一下,用的不多,有点为了加而加。
这篇发在ACM MM。。这下上游任务随便A+B=C缝合下又可以随意降维打击下游任务了。。我的评价是有idea就马上灌水