LeoEatle's World

Do have faith in what you are doing.

[LeetCode]419. Battleships in a Board

Question给一个矩阵,我们要找出其中有多少个战舰,一个战舰的定义是:一条n1或者1n的’X’,两个战舰中间必须有至少一个’.’分隔开,比如:X..X...X...X 这样就是两条战舰,...XXXXX...X 这样就是无效的战舰 Thinking这道题如果用BFS去解,时间复杂度会比较大,其实这道题有更为简易的解法: 我们只需要计算每个战舰的左上角的那个一个’X’,有多少个这样有效的’......

[Ng]Angular1.x复习笔记

...

[LeetCode]397. Integer Replacement

反直觉的问题

Question这个问题挺有趣的,给一个整数,通过除2、加1、减1三种方式,以最快的速度使数字变成1,比如:8 -> 4 -> 2 -> 1或者7 -> 8 -> 4 -> 2 -> 1 or 7 -> 6 -> 3 -> 2 -> 1 Thinking这个问题我的第一个直觉是这样的,如果是偶数就除以2,如果是奇数就减去1,很......

[LeetCode]103. Binary Tree Zigzag Level Order Traversal

Question经典的按层遍历二叉树,但是需要按照zigzag的路线去进行遍历,见示例:给这样一个二叉树 3 / \ 9 20 / \ 15 7它应该返回[ [3], [20,9], [15,7]] Solution二叉树按层遍历首选bfs,而bfs首选队列作为数据结构,就算是选择了队列作为数据结构,一般而言按层遍历还有个判断一层结束的问题,这个问题有常见......

[LeetCode]125. Valid Palindrome

Question给一个字符串,判断这个字符串中除去字母和数字以外的空格等符号后,是一个回文字符串,比如: “A man, a plan, a canal: Panama” 是回文的.“race a car” 不是回文的. 如果字符串为空,视为回文的 Solution这道题也比较简单了,其实就是头尾遍历,如果不是字符串就跳过,是字符串就比较头尾会不会相等,不相等就返回False主要是要对语言的......

[Swift]官方Swift Tour学习笔记

学了点OC之后也算是接触了一点点经典的iOS和Mac OS应用开发,但是我的好奇心还远远不止于此,我接下来的计划是学Swift和Mac OS Debian的内核,甚至买了一本《深入理解MacOS和iOS系统》 学习Swift有很多方案,可以看视频,但是我在网上找到了苹果官方的教程,那自然是看这一个。 这里简要做一个记录: 基本感觉是javascript和python结合体,let指明常量,......

[LeetCode]367. Valid Perfect Square

完全平方数的判断

Question题目很简单,要求判断一个数字是不是完全平方数,不准使用各种内置函数 Solution第一个想法我的第一个想法是这样的,不断遍历数从2到数的一半,进行除法操作,每次除数都push入一个数组,直到最后不能除为止,然后判断这个数组每个数字的数量是不是偶数但是果然TEL了,我猜想可能是最后的判断数组中数字为偶数这个步骤成本太大。 第二个想法我想到不需要去用一个数组去保存所有的除数,而......

[LeetCode]74. Search a 2D matrix

Question遍历一个矩阵寻找某个值是否在这个矩阵里面,矩阵有如下特征: 从左到右依次递增 矩阵中一行的第一个一定比上一行的最后一个大 Solution其实这个问题确实比较简单,最简单的做法就是把矩阵看作一个普通的数组,然后在这里面进行查找就行了但是最有效的查找方式应该是利用它每行首位数字的排序关系,我们可以先遍历每一行的第一个数字,用二分查找找到它在的那一行,然后再每行进行二分查找 ......

[LeetCode]116.Populating Next Right Pointers in Each Node

如何利用已经计算好的结果来减少时间/空间复杂度

Question给一个二叉树,你需要按层遍历并像下面这样: 1 / \ 2 3 / \ / \ 4 5 6 7变成下面这样: 1 -> NULL / \ 2 -> 3 -> NULL / \ / \ 4->5->6->7 -> N......

[SegmentFault打工日记]Video.js和直播平台

终于要做直播啦兴奋

最近听闻sf要做开发者直播平台,嘛,这可能真的成为了某种意义上的直播写代码了。 先看Video.js的文档吧安装安装就是CDN和npm两种方式,现在一般都是npm管理了吧。 设置选项这个是每个插件使用最重要的点。首先,由于video.js是作用于video tag标签上的,因此一般的html5标签可以用的属性都是可以用的,比如control,你也可以使用data-setup这个属性来给v......