正式找工作第一天

之前的一段时间边工作边找工作真的很累,而且结果也并不好,所以呢,现在终于可以一门心思在家复习,然后认真地去面试了。所以听了开老师的意见,我给自己也制定了一个学习计划,整个计划的时长53天,希望自己真的像开老师说的一样脱胎换骨。从今天学习的内容来看,学PRML的部分让我仿佛打开了新世界的大门,理论补充了不少,可是LeetCode题目真的是让我痛苦不堪啊。下面就今天复习的内容简单做个总结吧。


一、PRML第一章
第一章是绪论,所以主要是在科普一些基础知识。比如从第一节开始讲了泛化、特征抽取、有监督学习、无监督学习、反馈学习、多项式曲线拟合,第二节讲了概念论的求和法则、乘积法则以及贝叶斯定理、概率密度、期望和方差等等,第三节讲了模型选择,讲到了一个数据量小的时候应该采用一种衡量模型的信息准则。第四节讲了维度灾难,大概的意思就是很多低维空间的现象不能推广到高维空间,比如三维的球体是均匀的,但是高维的球体体积是集中在表面附近的薄壳上。同时还给出了我们能应用于高维空间的方法有效性的原因。第五节讲到了决策论,讲了解决决策问题的三种方式,生成式模型、判别式模型、类别映射。
二、LeetCode题目
No.5 最长回文子串
这道题目方法很多,我只说我自己看会的一种。就是用动态规划的方法,设计一个二维数组dp,用来记录两个字符之间的字符串是不是回文子串,比如dp[i][j]表示下标为i和j的两个字符之间的字符串是不是回文子串。初始值全部设为1。后面就分两种情况,i和j的距离小于等于1的时候,判断它俩位置上的字符相等,如果相等,dp的值置为1;如果大于1,那就要比较它俩位置上的值以及它的前一位上的值是否相等,也就是s[i]==s[j] and s[i+1][j-1],(外循环是j,内循环是i)。每次置为1的时候再判断长度,这个就比较容易了。
N0.8字符串转换整数(atoi)
这个题目想到了思路没有写完整,后来参考了别人的。首先就是用strip函数去掉字符串中的空白符号,然后用正则"^[-+]?\d+"找出其中的数字部分,再判断是否超出题目设置的范围就可以了。如果不能调re包的话可能就比较麻烦一些了。
N0.11 盛水最多的容器
这个题目很有意思,因为我一开始想到计算面积的话肯定是长和宽两个变量,所以暴力穷举,也能算出来,时间超了。后来看了别人的博客,看到可以先把宽度取最大,也就是指针从两端开始移动,由于面积大小由短边决定,所以只需要移动短边就可以了。因此外层循环是left No.15 三数之和
这个题目暴力搜索复杂度就直接到O(n^3)了,时间超了。看了一个思路,借鉴一下,先对数字进行排序,这样的作用是相同的数字肯定相邻,我在操作的时候就可以跳过相同的数字,起到降低时间复杂度的作用。如果排序后的选定的第一个值就大于0,那接下来的两个数就不用选了,三个数怎么选都大于0 。然后跳过跟前一个数相同的情况,再用两个变量j和k记录首尾两个指针,如果i,j,k三个所指的和为0,就加入结果,如果i,j的和小于-k,那就让j向左移动,否则,让k向右移动。

你可能感兴趣的:(正式找工作第一天)