博客园 - 前端兔子喵
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=23697
2020-12-27T01:39:28Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
feed.cnblogs.com
https://www.cnblogs.com/wizcabbit/p/you-dont-need-jquery-manipulation.html
抛弃jQuery:DOM API之操作元素 - 前端兔子喵
这次我们来聊一聊如何使用DOM API创建新元素、修改已有元素的属性或者移动元素的位置。原生的浏览器API已经给我们提供了DOM操作的所有功能,我们能够不借助jQuery或者其他函数库的帮助就完成这些。
2014-12-23T15:18:00Z
2014-12-23T15:18:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】这次我们来聊一聊如何使用DOM API创建新元素、修改已有元素的属性或者移动元素的位置。原生的浏览器API已经给我们提供了DOM操作的所有功能,我们能够不借助jQuery或者其他函数库的帮助就完成这些。 <a href="https://www.cnblogs.com/wizcabbit/p/you-dont-need-jquery-manipulation.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/you-dont-need-jquery-why-selector.html
抛弃jQuery:DOM API之选择元素 - 前端兔子喵
jQuery的选择符模块无比优雅,以至于我见过很多Web框架和应用中引用了庞大的jQuery,只是因为它提供了方便的DOM元素选择函数。事实上使用DOM API选择元素并没有那么难,它或许没有jQuery的那么简短,不过用起来也足够简单。
2014-12-22T23:34:00Z
2014-12-22T23:34:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】jQuery的选择符模块无比优雅,以至于我见过很多Web框架和应用中引用了庞大的jQuery,只是因为它提供了方便的DOM元素选择函数。事实上使用DOM API选择元素并没有那么难,它或许没有jQuery的那么简短,不过用起来也足够简单。 <a href="https://www.cnblogs.com/wizcabbit/p/you-dont-need-jquery-why-selector.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/you-dont-need-jquery-why-not.html
抛弃jQuery:Why? - 前端兔子喵
Web工程师太依赖jQuery了,某种意义上说jQuery已经成了JavaScript的同义词。但是我们真的需要他么?或许我们应该反思一下什么时候才真的需要jQuery。
2014-12-21T23:31:00Z
2014-12-21T23:31:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】Web工程师太依赖jQuery了,某种意义上说jQuery已经成了JavaScript的同义词。但是我们真的需要他么?或许我们应该反思一下什么时候才真的需要jQuery。 <a href="https://www.cnblogs.com/wizcabbit/p/you-dont-need-jquery-why-not.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/sublime-text-front-end-developers.html
前端工程师手中的Sublime Text - 前端兔子喵
Sublime Text算是前端开发中最常使用的文本编辑器之一,对于前端工程师来说熟悉手中的编辑器就像熟悉筷子一样重要。Sublime Text的入门文章网上已经太多了,本文只关注能提升前端工程师工作效率的技巧和插件。
2014-12-21T14:40:00Z
2014-12-21T14:40:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】Sublime Text算是前端开发中最常使用的文本编辑器之一,对于前端工程师来说熟悉手中的编辑器就像熟悉筷子一样重要。Sublime Text的入门文章网上已经太多了,本文只关注能提升前端工程师工作效率的技巧和插件。 <a href="https://www.cnblogs.com/wizcabbit/p/sublime-text-front-end-developers.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/web-image-optimization.html
Web性能优化:图片优化 - 前端兔子喵
HTTPArchieve统计显示,图片内容已经占到了互联网内容总量的62%,也就是说超过一半的流量和时间都用来下载图片。本文覆盖了Web图片优化的方方面面,从基本的图片格式选择、到尚未被广泛支持的响应式图片均有所提及。
2014-12-09T13:27:00Z
2014-12-09T13:27:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】HTTPArchieve统计显示,图片内容已经占到了互联网内容总量的62%,也就是说超过一半的流量和时间都用来下载图片。本文覆盖了Web图片优化的方方面面,从基本的图片格式选择、到尚未被广泛支持的响应式图片均有所提及。 <a href="https://www.cnblogs.com/wizcabbit/p/web-image-optimization.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-113-path-sum-ii.html
Leetcode 笔记 113 - Path Sum II - 前端兔子喵
深度优先遍历题目,在Path Sum的基础上需要可行的解全部列出来。这里会用到有些动态规划的题目中也会用到的技巧,每次深度优先遍历时,都逐级传递从根结点到当前结点的路径
2014-11-24T04:33:00Z
2014-11-24T04:33:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】深度优先遍历题目,在Path Sum的基础上需要可行的解全部列出来。这里会用到有些动态规划的题目中也会用到的技巧,每次深度优先遍历时,都逐级传递从根结点到当前结点的路径 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-113-path-sum-ii.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-112-path-sum.html
Leetcode 笔记 112 - Path Sum - 前端兔子喵
深度优先遍历题目,拿到题后首先需要确认几个题中没有明确给出的要点:root-to-leaf 路径,必须是从根结点一直到叶子结点,中间取一段是不行的;结点值可以为负;空的二叉树,不能认为存在和为0的路径
2014-11-20T04:32:00Z
2014-11-20T04:32:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】深度优先遍历题目,拿到题后首先需要确认几个题中没有明确给出的要点:root-to-leaf 路径,必须是从根结点一直到叶子结点,中间取一段是不行的;结点值可以为负;空的二叉树,不能认为存在和为0的路径 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-112-path-sum.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-110-balanced-binary-tree.html
Leetcode 笔记 110 - Balanced Binary Tree - 前端兔子喵
深度优先遍历题目,只要在遍历时取得左右子树的深度,对比是否相差超过1就可以得出结果,需要考虑的技巧是怎么在发现不平衡之后,最迅速的返回结果,不做多余的计算。有可能出现的问题是先写一个Helper方法获得结点到最下层叶子结点的深度,然后在深度优先遍历中每次调用这个方法来对比深度。这是不必要的,获取深度本身就是用深度优先遍历实现的,一边遍历一边计算深度就OK。
2014-11-12T04:30:00Z
2014-11-12T04:30:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】深度优先遍历题目,只要在遍历时取得左右子树的深度,对比是否相差超过1就可以得出结果,需要考虑的技巧是怎么在发现不平衡之后,最迅速的返回结果,不做多余的计算。有可能出现的问题是先写一个Helper方法获得结点到最下层叶子结点的深度,然后在深度优先遍历中每次调用这个方法来对比深度。这是不必要的,获取深度本身就是用深度优先遍历实现的,一边遍历一边计算深度就OK。 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-110-balanced-binary-tree.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-100-same-tree.html
Leetcode 笔记 100 - Same Tree - 前端兔子喵
深度优先遍历的题,唯一需要注意的是leetcode约定的对结点为空的两个约定:1. left, right指向None表示没有叶子结点;2. root不为None时(即结点存在),root.val不为None
2014-11-12T04:29:00Z
2014-11-12T04:29:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】深度优先遍历的题,唯一需要注意的是leetcode约定的对结点为空的两个约定:1. left, right指向None表示没有叶子结点;2. root不为None时(即结点存在),root.val不为None <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-100-same-tree.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-99-recover-binary-search-tree.html
Leetcode 笔记 99 - Recover Binary Search Tree - 前端兔子喵
基本要求是使用O(n)的空间,进阶要求是使用常数空间。O(n)的算法比较直接,直接从二叉查找树的用途就能推出。二叉查找树的特点是中序遍历后能够生成递增的序列,因此只需要对给定的二叉查找树进行中序遍历,遍历过程中找到非递增情况,就能够得出不符合递增规律的两个数,交换后二叉查找树的恢复就完成了。
2014-11-09T04:27:00Z
2014-11-09T04:27:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】基本要求是使用O(n)的空间,进阶要求是使用常数空间。O(n)的算法比较直接,直接从二叉查找树的用途就能推出。二叉查找树的特点是中序遍历后能够生成递增的序列,因此只需要对给定的二叉查找树进行中序遍历,遍历过程中找到非递增情况,就能够得出不符合递增规律的两个数,交换后二叉查找树的恢复就完成了。 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-99-recover-binary-search-tree.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-98-validate-binary-search-tree.html
Leetcode 笔记 98 - Validate Binary Search Tree - 前端兔子喵
对于Binary Search Tree,每道题都需要认真确认题中的约定是否与自己的理解相符,比如大名鼎鼎的Cracking the Coding Interview中,对于二叉查找树的定义为“左子结点小于或等于当前结点”,本题中的描述为”左子结点小于当前结点“。
2014-11-09T03:02:00Z
2014-11-09T03:02:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】对于Binary Search Tree,每道题都需要认真确认题中的约定是否与自己的理解相符,比如大名鼎鼎的Cracking the Coding Interview中,对于二叉查找树的定义为“左子结点小于或等于当前结点”,本题中的描述为”左子结点小于当前结点“。 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-98-validate-binary-search-tree.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-101-symmetric-tree.html
Leetcode 笔记 101 - Symmetric Tree - 前端兔子喵
判断一个二叉树是否是镜像的条件是根节点的左右子树互为镜像,左右子树互为镜像的条件是左右子结点的内侧、外侧两个子树互为镜像,这本质上是一个递归问题。
2014-11-03T03:00:00Z
2014-11-03T03:00:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】判断一个二叉树是否是镜像的条件是根节点的左右子树互为镜像,左右子树互为镜像的条件是左右子结点的内侧、外侧两个子树互为镜像,这本质上是一个递归问题。 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-101-symmetric-tree.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-36-sudoku-solver.html
Leetcode 笔记 36 - Sudoku Solver - 前端兔子喵
写程序解数独的基本解法与人类解数独的方法基本相同,都是采用回溯法逐一试探推进。数独初始表格给出后,剩余的空格所有可能的值全排列的结果即为解空间,在解空间中,对每个空格填入一个值进行试探,如果试探后数独表格合法,则这个值被暂时采纳,对下一个格子进行试探。
2014-11-02T01:41:00Z
2014-11-02T01:41:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】写程序解数独的基本解法与人类解数独的方法基本相同,都是采用回溯法逐一试探推进。数独初始表格给出后,剩余的空格所有可能的值全排列的结果即为解空间,在解空间中,对每个空格填入一个值进行试探,如果试探后数独表格合法,则这个值被暂时采纳,对下一个格子进行试探。 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-36-sudoku-solver.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-35-valid-sudoku.html
Leetcode 笔记 35 - Valid Soduko - 前端兔子喵
最简单直接的解法一般是遍历整张数独表格,遇到的每个元素,以此遍历所属行、所属列、所属粗线宫是否有与之重复的数字。但是这种算法中,每遍历到一个元素,都要进行额外的最多3*9个格子的遍历。
2014-11-01T01:39:00Z
2014-11-01T01:39:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】最简单直接的解法一般是遍历整张数独表格,遇到的每个元素,以此遍历所属行、所属列、所属粗线宫是否有与之重复的数字。但是这种算法中,每遍历到一个元素,都要进行额外的最多3*9个格子的遍历。 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-35-valid-sudoku.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-117-populating-next-right-pointers-in-each-node-ii.html
Leetcode 笔记 117 - Populating Next Right Pointers in Each Node II - 前端兔子喵
本题的一个难点在于要求使用常数空间,这样的话普通的深度优先遍历由于需要递归压栈而无法使用,普通的广度优先搜索需要使用队列也无法使用,因此选择使用两层迭代,使用current指向当前结点的方法进行广度优先遍历。
2014-10-30T01:33:00Z
2014-10-30T01:33:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】本题的一个难点在于要求使用常数空间,这样的话普通的深度优先遍历由于需要递归压栈而无法使用,普通的广度优先搜索需要使用队列也无法使用,因此选择使用两层迭代,使用current指向当前结点的方法进行广度优先遍历。 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-117-populating-next-right-pointers-in-each-node-ii.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wizcabbit/p/leetcode-116-populating-next-right-pointers-in-each-node.html
Leetcode 笔记 116 - Populating Next Right Pointers in Each Node - 前端兔子喵
是Populating Next Right Pointers in Each Node II的简化版本,主要简化在于给定的树是完整树,因此Populating Next Right Pointers in Each Node II的解法也完全适用于本题。
2014-10-29T01:28:00Z
2014-10-29T01:28:00Z
前端兔子喵
https://www.cnblogs.com/wizcabbit/
【摘要】是Populating Next Right Pointers in Each Node II的简化版本,主要简化在于给定的树是完整树,因此Populating Next Right Pointers in Each Node II的解法也完全适用于本题。 <a href="https://www.cnblogs.com/wizcabbit/p/leetcode-116-populating-next-right-pointers-in-each-node.html" target="_blank">阅读全文</a>