上篇文章:小想法
std::vector<std::string> split(std::string s, char c){
std::string::size_type p=0, np=0;
std::vector<std::string> res;
while(np!=s.npos){
np=s.find(c, p);
res.emplace_back(s.substr(p, np-p));
if(np+1<s.size())p=np+1;
}
return res;
}
\[x mod y=x-y\times\lfloor x/y\rfloor\], 同余定理:如果\[a\equiv b(mod m),c\equiv d(mod m)\],那么:\[a\pm c\equiv b\pm d(mod m), a\cdot c\equiv b\cdot d(mod m)\],参考链接:原码、补码、反码的关系
Calculator Suite - GeoGebra

函数f(x)=-xlgx在该网站上绘制的图像,-xlgx在x=1/e时取最大值1/e
打开gradle/wrapper/gradle-wrapper.properties文件,把distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip改为distributionUrl=https\://downloads.gradle-dn.com/distributions/gradle-5.4.1-all.zip,参考自【Android】Could not install Gradle distribution from(最简单) - gradle
vi /etc/crontab配置定时任务,一个定时任务用“分钟 时 日 月 星期 用户名 命令”表示
在linux上运行程序缺少某动态链接库报如题所述错误,方法是找到动态链接库,并export环境变量LD_LIBRARY_PATH包含动态链接库所在路径,使得应用程序能找到该动态链接库。
341. 扁平化嵌套列表迭代器:,嵌套整数列表的扁平化,不说递归深度遍历的解法,栈的解法奇思巧用。问题的情景是,拿到一个嵌套整数列表,判断hasNext(),若有,next(),否则,完成扁平化操作。栈的解法初始化O(1),比dfs初始化O(n)快,next()两者差不多,hasNext()跟dfs差不多都是O(1),如果潜逃列表连续几个左(或右)中括号,那hasNext多循环连续左(或右)中括号出现的次数,空间复杂度O(m),m指最大嵌套深度,大部分情景比dfs的空间复杂度O(n),n指元素个数,好多了。栈的解法过程:栈的元素:两个迭代器,第一个迭代器指向目前访问的元素位置,第二个迭代器执行该层嵌套列表结束的位置,该问题初始化时把嵌套列表的begin和end迭代器push到栈中,hasNext的实现:若栈空的,返回false,否则进入判断栈是否为空的循环,获得栈首元素,若栈首元素的两个迭代器相等,说明该层嵌套列表访问完毕,pop掉栈首元素,进入上一层列表,进入下一循环,若栈首元素指向的当前元素是一个数,返回true,否则获得当前要访问的列表,把这个列表的begin和end迭代器push到栈中。next的实现:hasNext保证栈首的要访问的元素是整数,返回这个整数。hasNext和next过程中记得递增刚访问过的迭代器。
另外,这道题是要设计一个针对嵌套列表的迭代器,迭代器的理念:提供访问途径,而非全局开销做直接存储;初始化迭代器后,若迭代目标中某还未访问到的元素发生值的变化,当迭代器访问到的时候迭代器给出的应是改变后的值。本着这道题的设计目标来说,dfs方法不够格,栈的方法可以接受。评论区的其他讨论:迭代器模式:用惰性加载的方式提高性能
iterator类型不要加引用符号,会出现一堆跟C++标准头文件有关的错误,什么候选构造函数模板不可行啊,,毕竟iterator就是指针,指针的引用,引用还得初始化,连起来用有大问题,哈哈哈
原因是链里出现环,leetcode判题打印结果陷入循环产生报错
如v是vector<tuple<int,int,int>>类型的变量,则可这样取tuple的元素:auto [i1,i2,i3]=v[0];甚至都不需要声明变量i1,i2,i3。C++的语法糖,好好吃
Ubuntu Packages Search,搜“make”能看到apt install make牵涉到的包
常见包下载ftp站点
一个电脑连不上有线和无线网,我只能在联网的电脑上下载deb包,下到u盘上,文件准备就绪,1M大小,拔掉U盘插到离线电脑上,文件类型不可识别,用不了,我持续搞了三次,第一次基本没给U盘反应的时间,后面两次我看着U盘上的文件图标变好了,结果还那样,我累了,毁灭吧。
其实后来想想,可以wget或者先把文件下载到某一位置再移动文件到u盘上
因为ubuntu采用开源的理念,不会预先安装需要同意许可证的有版权专利内容的软件,需要安装一些解编码器codec解决该报错。安装如下软件包:gstreamer1.0-plugins-bad、libdvd-pkg, gstreamer1.0-plugins-ugly和libdvdnav4,参考文献:Unable to play MP4 file in Ubuntu 18.04: H.264 (Main Profile) decoder is required to play the file, but is not installed,How to Install h.264 decoder on Ubuntu Linux
ffmpeg -i YOASOBI「好きだ」5月30日配信リリース.flv -r 30 -f image2 yoasobi-imgs/%05d.jpg,r参数接每秒采样次数fps,通过ffmpeg -i YOASOBI「好きだ」5月30日配信リリース.flv查看视频fps为30,f参数接格式化类型,image2格式方式获取的图片较小,但清晰度低。参考文献:ffmpeg将视频转换成图片
通过sudo fdisk -l查询到目标硬盘的路径为/dev/sdb,在/mnt下创建sdb文件夹,sudo mount /dev/sdb /mnt/sdb,sudo vi /etc/fstab,在文件末尾补上一行:/dev/sdb /mnt/sdb ext4 defaults 0 1,设置开机自动挂载,参考链接:ubuntu下添加硬盘,分区以及自动挂载、ubuntu永久挂载硬盘👍1
这个软件可以给出系统中各种软件的启动命令,命令用在ubuntu的自动启动配置。但在ubuntu software软件中常常搜索不出来它,今天玄学找到了它,这个软件的官网为MATE Desktop Environment,可以看到官方维护了一个工具箱,工具箱里的一个小应用是MainMenu,该软件安装完成后命令行mozo启动图形界面窗口
sudo fdisk -l查找U盘的设备路径/dev/sdb1,看到U盘的文件系统格式是FAT32,umount /dev/sdb1解除U盘和系统的挂载点,sudo mkfs.vfat -F 32 /dev/sdb1格式化U盘,格式化后的U盘的文件系统仍采取FAT32格式,参考文献:Ubuntu下基于格式化命令 格式化U盘的方法
吐槽:他奶奶的,我点击图形界面的格式化按钮,不响应,ubuntu有图形界面挺好,好用,但很多关键的地方又在那傻站,还没有命令行解决酣畅淋漓
mount -t ntfs-3g /dev/sdb1 /mnt/sdb(直接安装ntfs-3g),参考链接:解决linux系统插入硬盘显示:mount: unknown filesystem type ‘ntfs’ 问题
首先看取值范围,递归回溯一维数组,100就是深度的极限了;其次,如果求“路径”用回溯,如果求“路径的条数”,用动规。来自Samarua
0*0+1*1+3*2+4*3=19,实现代码如下
def corr2d(X,K): '''Compute 2D cross-correlation.''' h,w=K.shape Y=tf.Variable(tf.zeros((X.shape[0]-h+1,X.shape[1]-w+1))) for i in range(Y.shape[0]): for j in range(Y.shape[1]): Y[i,j].assign(tf.reduce_sum(X[i:i+h,j:j+w]*K)) return Y corr2d(tf.constant([[0.0,1.0,2.0],[3.0,4.0,5.0],[6.0,7.0,8.0]]),tf.constant([[0.0,1.0],[2.0,3.0]]))
def trans_conv(X,K): h,w=K.shape Y=np.zeros((X.shape[0]+h-1,X.shape[1]+w-1)) for i in range(X.shape[0]): for j in range(X.shape[1]): Y[i:i+h,j:j+w]+=X[i,j]*K return Y trans_conv(np.array([[0.0,1.0],[2.0,3.0]]),np.array([[0.0,1.0],[2.0,3.0]]))参考链接:13.10. Transposed Convolution,6.2. Convolutions for Images
照着答案复制粘贴了一份能过用例的代码,两条从左上角到右下角的路线,两条路径跟随步数可能的位置需要讨论,但中间的状态转移不太懂。我宣布,我不会摘樱桃,之后钻研搞懂了些东西,看这里
阻塞指程序等待结果的过程中不去干别的事,非阻塞指程序等待结果的过程中去干别的事;同步指程序紧盯着结果出来,异步指结果什么时候出来了有谁会来通知。参考自同步、异步、阻塞、非阻塞
说件恶心的事,吃瓜之后打嗝瓜籽随着呼吸道的上升气流蹿上来,到鼻腔上头部位,一段时间后,我想掏鼻屎,掏出来这个瓜籽,人体真的好奇妙。
当前工作路径,获取getcwd,设置chdir,相对路径相对当前工作路径来说;绝对路径,总是从根文件夹开始,windows系统中以盘符(C:、D:)为根文件夹,而OS X或linux以/为根文件夹,所以linux下python不识别~开头的家目录路径,参考文献:Python绝对路径和相对路径详解
html中小于号书写方式是<,大于号书写方式是>,与符号书写方式是&,这种特殊用法叫做字符实体,保证普通字符与预留字符不产生歧义,书写方式&entity_name;或者&#entity_number;,比如小于号的另一个写法:<,名称好记,但浏览器不定支持所有实体名称,但能涵盖所有实体数字,参考自HTML 字符实体 < >: &等
HC,Head Count,人头
JD, Job Description,工作职责描述
OC, Offer Call,录用通知
参考自HC、JD、OC 是啥...求职、工作过程中可能遇到的英文缩略语整理