我心又起

关于一些react和redux开发想法

按功能组织代码 之前使用MVC框架开发的时候使用这样的代码组织方式(按角色组织) controllers/ todoController.js fillterController.js models/ todoModels.js filterModels.js views/ todo.js todolist.js filter.js ...

JavaScript模式

JavaScript模式读书笔记

第一章 简介 尽量多使用对象的组合,而不是使用类的继承。 通过已有的对象组合来获取新对象,是比通过很长的父—子继承链来创建新的对象更好的一种方法 第二章 基本技巧 创建隐式全局变量的反模式是带有var声明的链式赋值 function foo(){ var a = b = 0; //此时,a是局部变量,b是全局变...

闭包实现单例模式

单例模式的思想在于保证一个特定类有且仅有一个实例 JavaScript中可以通过闭包实现单个实例 function Universe() { //缓存实例 var _this = this; //正常进行 this.start_time = 0; this.bang = 'big'; //重写构造函数 Universe = func...

Leetcode-11

Leetcode-11题解

大致题意 Container With Most Water 就是求一个数组里所有两个值中较小值和它们之间距离的乘积最大值 解题思路 这题最暴力的方法是遍历,时间复杂度O(n^2),这样一点都不优雅 当然也有O(n)的,解法如下: 示例数组[1,8,6,2,5,4,8,3,7] 选数组的起始和终点,即选1和7间隔为8,此时乘积为1*8 最大间隔是8那么,从最大间隔找递...

Leetcode-5

Leetcode-5题解

大致题意 Longest Palindromic Substring 就是求字符串的最长回文子串 解题思路 这题当然是用爆爆爆爆爆爆力啊 最长回文子串有多种求法吧 刚好趁着这题学了一下马拉车算法,我是说Manacher算法 参考了这篇博客 Manacher算法的原理其实很简单 首先,在字符串s的每个字符中间添加该字符串不存在的符号,比如’#’,这样做并不会影...

Leetcode-4

Leetcode-4题解

大致题意 Median of Two Sorted Arrays 就是求两个已排序的数组重新排序后的中位数 解题思路 这题题目规定是时间复杂度是O(log(m+n)),根据这个时间复杂度那么就是二分查找了 最开始没有看到时间复杂度搓了一个O(m+n),还觉得LeetCode的hard难度一般般((( 事实证明我太蠢了 功力不够最后还是在网上找了解答 参考了这篇博客 这篇博客...

Leetcode-3

Leetcode-3题解

大致题意 Longest Substring Without Repeating Characters 就是求最长不含相同符号的子串 解题思路 这题感觉最开始想到的当然是爆爆爆爆爆爆力 感觉暴力太鬼畜了 所以想二分求最大长度 但是还是TLE…. 所以说还是很弱智= =! 去网上看了看,发现这题有非常巧妙的解法 解答参考了这篇博客 这篇博客的思路是 就是开一个数组然后记...

Leetcode-2

Leetcode-2题解

大致题意 Add-Two-Numbers 就是给两个非空数值链表,然后求和 解题思路 这题感觉就是链表水题 时间复杂度就是O(n) 完整解答

Leetcode-1

Leetcode-1题解

大致题意 Two-Sum 就是给出一个目标值,在数组中找到两个数和为目标值的下标 解题思路 这个是一年半写的题= =!看了一下当时的AC代码,当时就是爆爆爆爆爆爆力AC 现在看来可以说是非常的zz 看了看Runtime花费比较少的代码 vector twoSum(vector& nums, int target) { unordered_set s; vect...

Uva-10474

Uva-10474题解

大致题意 题目原文 就是给出一个序列,输入数字,输出这个数字在这个序列排序后的位置,如果序列中有多个相同的数字的话输出最小的位置,给出数字可能不存在 解题思路 排序+二分 排序直接调用了STL库的sort函数,最开始手搓了一个二分,但是二分有一点要注意,二分出来的结果在有多个相同数字的时候,不一定是最小值,所以在最后加一个hack(因为这个还WA了一次(叹气 但是网上看题解的时候...