Fork me on GitHub

ARTS 第二周 欢迎交流讨论

What’s ARTS?
A:Algorithm 每周至少做一个leetcode的算法题
R:Review 阅读并点评至少一遍英文技术文章
T:Tip 学习至少一个技术技巧
S:Share 分享一篇有观点和思考的技术文章

1.Algorithm

Longest Substring Without Repeating Characters,找出最长且不重复的子串
Example 1:

Input: ”abcabcbb”
Output: ”3”
Explanation: The answer is “abc”, with the length of 3

Example 2:

Input: ”pwwkew”
Output: ”3”
Explanation: The answer is “wke”, with the length of 3.
Note that the answer must be a substring, “pwke” is a subsequence and not a

此题可以通过滑动窗口的思想来解决,代码如下

1
2
3
4
5
6
7
8
9
10
11
int lengthOfLongestSubstring(string s)
{
vector<int> arr(128,-1);
int left = -1,res = 0; //滑动窗口的左边和返回值
for (int i = 0;i < s.size();++i) {
left = max(left,arr[s[i]);
arr[s[i] = i;
res = max(res,i-left);
}
return res;
}

2.Review

我该怎样去学习一些函数式编程?
本篇文章从OOD到函数式编程,没过于讲解技术上面的知识,不过作者推荐了一些文章讲述了该怎么去学习函数式编程,比如第一推荐了《Function JavaScript》,和使用underscore library,当熟练了这些下一步就可以深入。《JavaScript Allongé》,《Professor Frisby’s Mostly Adequate Guide to Functional Programming.》,并且还推荐了haskell。这篇文章主要是”Tell us how to learn it”,对函数式编程感兴趣的朋友可以点击阅读下

3.Tip

关于Tip,说一下这周学的怎么计算子网地址,子网掩码和一个子网内主机数吧
例如一个IP地址是203.123.1.135,子网掩码是255.255.255.192

那子网地址:就是用IP地址和子网掩码进行按位与运算,这里也就是132&192=128,所以子网地址这个ip地址对应的子网地址是203.123.1.128

子网主机数:将子网掩码转成二进制,11111111.11111111.11111111.11000000 其中为1的表示网络位,为0表示主机位。主机位总共占6位,主机数就等于2^6-2=62,减去的2代表的是 子网地址和直接广播地址。

Share

这周没什么分享的,因为最近这一两个月都太忙了,工作上、生活上,自我学习上都挺忙的,没有什么太值得分享的东西。倒是可以分享下之前感到很郁闷的东西,我朋友大概知道 相对于技术,我一直比较反感windows下mfc开发的那一套和不太愿意去接触web端的东西,不过最近工作上从duilib到mfc是干的真的很糟心,没有激情没有想去学习mfc的动力,所以以致于工作上出现很多问题。

过渡了一个月,看到耗子叔的专栏,心态有了些变化。正如专栏里说的和我自己理解的,其实自己并不是反感windows,偏好linux开发。反而是由于linux简单,windows比较复杂产生的抵抗情绪。调节了一下心态,活到老,学到老。I’m not perfect.But I keep trying.

最后

PS:能把心态调节过来,个人认为跟自己最近阅读的书籍有一定联系,所以在这里也推荐几本刚刚看完的书,希望小伙伴们能一起交流。

《一个人的朝圣》 很多人认为是鸡汤,其实我并不这样认为,作者只不过是讲述了哈罗德一个人朝圣的故事与你我无关
《情人》 小波同志力荐的一本小说
《海边的卡夫卡》

您的赞赏是对我最大的支持,谢谢!