从 二月中旬到四月底 这段时间一直忙于找实习,做准备,刷题,牛客上刷了蛮多算法题,遇到过比较多用动态规划解的题,现在实习的事情基本上也已经定下来了,手上也收到几个还满意的offer,一直想找一个时间去总结下此类题目的解法,思路总是有点模糊,容易忘记,现乘着有时间正好总结一下,也方便后面查阅。动态规划最经典的题目莫过于求两个字符串的最长公共子序列(LCS)问题了,我就以这个问题为例子,总结下动态规划的特点及适用场景。
求解子数组之和的最大值及相应的子数组
参加了CVTE的2017实习生招聘在线笔试,最后一道编程题,写出了思路,但是无奈时间不太够,没有把代码完全写出来,现趁着有时间把思路整理一下,把实现代码写出来,也是一个不错的总结,也让我对DP有了更好的理解。网上搜索,发现这道题是《编程之美》中的一道题,所以也得出一个结论,这本书也是找工作实习必刷的大菜。
题目描述
有N个元素的整型数组arr,有正有负,数组中连续一个或多个元素组成一个子数组,这个数组当然有很多子数组,求子数组之和的最大值及相应的子数组。
例如:输入[0,-2,3,5,-1,2]应返回7和[3,5,-1],输入[-9,-2,-3,-5,-3]应返回-2,[-2];
要求设计一个o(n)的算法求解。
腾讯实习生笔试编程题--满二叉排序树,给定三个结点,求公共父结点
今年(2017)腾讯暑期实习生招聘笔试感觉好难,题目分两个部分总共2个小时,第一部分是30道不定项选择题,第二部分包含2道简答题和2道编程题,
第一道编程题做了一半,没完全写出来,现在有时间总结一下:
题目:一颗满二叉排序树,节点值范围为:1~2^(N-1),给定三个子节点,求最大的公共父节点;
如输入层数N=4,子节点11,13,15; 则输出:12
Java学习之集合框架(上)
相关概念
框架(framework)是一个类的集合,奠定了创建高级功能的基础;Java中的集合类是一种工具类,相当于一个容器,可以存储任意数量的具有共同属性的对象;Java集合类库构成了集合类的框架,集合框架为集合的实现者定义了大量的接口和抽象类,基于此增加了代码的重用性。
新环境下Hexo博客部署及维护
之前的博客源码一直放在Linux(CentOS)环境下,最近想要更新博客,发现在Linux环境下编辑Markdown文件各种不方便;在Windows环境写好后再传到Linux环境下再部署总觉得多此一举,遂想要将博客迁移出来,期间遇到了各种问题,还好都解决了。将出现的问题及解决方法总结记录下来,以后或许还能用上。