simplify the life

2015年9月10日 #

leetcode - 位运算题目汇总(上)

摘要: 最近在看位运算的知识,十分感叹于位运算的博大精深,正好leetcode有 "Bit Manipulation" 的专题,正好拿来练练手。 "Subsets" 给出一个由不同的数字组成的数组,枚举它的子数组(子集)。这道题我之前用递归解过,而且效率还不错(beat 83.33%),解法如下不加详述了... 阅读全文

posted @ 2015-09-10 23:06 lessfish 阅读(1127) 评论(0) 推荐(1) 编辑

【位运算经典应用】 寻找那个唯一的数

摘要: "Single Number" 这一系列有三道题,第一题也是最简单最经典的。 有一个数组,里面的元素每个都出现了两次,除了一个特殊的,求这个特殊元素。接触过这类题目的coder很快能够脱口而出:直接异或就ok了!的确如此: var singleNumber = function(num... 阅读全文

posted @ 2015-09-10 15:06 lessfish 阅读(2111) 评论(2) 推荐(2) 编辑

归并排序 JavaScript 实现

摘要: "前文" 我们了解了快速排序算法的实现,本文我们来了解下另一种流行的排序算法 归并排序算法。 我们先来回顾下快排。快排的核心是找出一个基准元素,把数组中比该元素小的放到左边数组,比该元素大的放到右边数组,如果左边数组和右边数组分别有序,那么leftArray+midItem+rightArray就是 阅读全文

posted @ 2015-09-10 08:39 lessfish 阅读(7991) 评论(0) 推荐(3) 编辑

2015年9月9日 #

【位运算经典应用】 求二进制逆序

摘要: 本文我们来讲讲二进制的经典应用 求二进制的逆序。本文的重点除了算法本身外,还有 和` `的神奇应用。leetcode中有道具体的题目 "Reverse Bits" ,题目很简单,给你一个 32位无符号整数 ,比如43261596(00000010100101000001111010011100),返... 阅读全文

posted @ 2015-09-09 15:09 lessfish 阅读(3755) 评论(2) 推荐(0) 编辑

【位运算经典应用】 N皇后问题

摘要: 说到位运算的经典应用,不得不说N皇后问题。学过程序设计的都知道N皇后问题,没听过也没关系。很简单,最传统的的N皇后问题是这个样子的,给你一个n n大小的board,让你放n个皇后(国际象棋),要满足任意两个皇后不能在一条水平线上,不能在一条垂直线上,也不能在一条45度的斜线上。听起来似乎和数独挺像,... 阅读全文

posted @ 2015-09-09 09:05 lessfish 阅读(1994) 评论(1) 推荐(1) 编辑

2015年9月8日 #

【位运算经典应用】 标志位与掩码

摘要: 前面我们已经了解了六大位操作符( `| ~` `<< `)的用法( "javascript 位运算" ),也整理了一些常用的位运算操作( "常用位运算整理" ),本文我们继续深入位运算,来了解下二进制的经典应用 标志位与掩码。位运算经常被用来创建、处理以及读取标志位序列——一种类似二进制的变量。虽然... 阅读全文

posted @ 2015-09-08 18:38 lessfish 阅读(5427) 评论(0) 推荐(0) 编辑

常用位运算整理

摘要: 位运算优先级 ( + ) ( << ) ( ~ & ^ | ) 右边第k位系列 var x = 18; // 10010 // 取右边第k位 // x (k 1) & 1 console.log(x (2 1) & 1); // 1 // 把右边第k位变为0 // x & ~(1 << (k 1... 阅读全文

posted @ 2015-09-08 08:55 lessfish 阅读(1345) 评论(0) 推荐(0) 编辑

2015年9月7日 #

快速排序 JavaScript 实现

摘要: 作为算法目录下的第一篇博文,快速排序那是再合适不过了。作为最基本最经典的算法之一,我觉得每个程序员都应该熟悉并且掌握它,而不是只会调用库函数,知其然而不知其所以然。 排序算法有10种左右(或许更多),耳熟能详的冒泡排序、选择排序都属于复杂度O(n^2)的“慢”排,而快排的复杂度达到了O(nlongn 阅读全文

posted @ 2015-09-07 15:45 lessfish 阅读(8965) 评论(3) 推荐(0) 编辑

JavaScript的attribute和property辨析

摘要: 1、Attribute Attribute是HTML上设置的属性,在html中显式地设置,或者通过 方法设置。 比如这样一段html代码,实际上它有三个attribute属性,我们可以打印出来看看: var a = document.getElementById('txt'); console.lo 阅读全文

posted @ 2015-09-07 08:54 lessfish 阅读(1792) 评论(5) 推荐(2) 编辑

2015年9月6日 #

javascript 位运算

摘要: 位运算博大精深,本文总结下基本的位运算的概念。 1、整数的二进制码 位操作符用于在最基本的层次上,即按内存中表示数值的位来操作数值。ECMAScript中的所有数值都以IEEE 754 64位格式存储,但位操作符并不直接操作64位的值。而是先将64位的值转换成32位的整数,然后执行操作,最后再将结... 阅读全文

posted @ 2015-09-06 21:00 lessfish 阅读(7460) 评论(5) 推荐(2) 编辑

2015年8月26日 #

求连续最大子序列积 - leetcode. 152 Maximum Product Subarray

摘要: 题目链接:[Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray) solutions同步在[github](https://github.com/hanzichi/leetcode)***题... 阅读全文

posted @ 2015-08-26 14:33 lessfish 阅读(1400) 评论(0) 推荐(0) 编辑

2015年8月24日 #

求最长回文子串 - leetcode 5. Longest Palindromic Substring

摘要: **写在前面:**忍不住吐槽几句今天上海的天气,次奥,鞋子里都能养鱼了...裤子也全湿了,衣服也全湿了,关键是这天气还打空调,只能瑟瑟发抖祈祷不要感冒了....前后切了一百零几道[leetcode](https://leetcode.com/)的题(solution同步在[github](https... 阅读全文

posted @ 2015-08-24 09:44 lessfish 阅读(2502) 评论(0) 推荐(0) 编辑

2015年8月18日 #

迭代和递归 - leetcode 206. Reverse Linked List

摘要: [Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/),一道有趣的题目。给你一个链表,输出反向链表。因为我用的是JavaScript提交,所以链表的每个节点都是一个对象。例如`1->2->3`,就要得到`3-... 阅读全文

posted @ 2015-08-18 10:39 lessfish 阅读(1931) 评论(0) 推荐(0) 编辑

2015年8月17日 #

理解JavaScript中的参数传递 - leetcode189. Rotate Array

摘要: ###1、关于leetcode***这是第一篇关于[leetcode](https://leetcode.com/)的题解,就先扯点关于leetcode的话。其实很早前就在博客园看到过leetcode一些题解,总以为跟一般OJ大同小异,直到最近点开了一篇博文[Leetcode 编程训练](http:... 阅读全文

posted @ 2015-08-17 09:19 lessfish 阅读(1639) 评论(8) 推荐(1) 编辑

2015年8月11日 #

高性能JavaScript 重排与重绘

摘要: 先回顾下前文 "高性能JavaScript DOM编程" ,主要提了两点优化,一是尽量减少DOM的访问,而把运算放在ECMAScript这一端,二是尽量缓存局部变量,比如length等等,最后介绍了两个新的API 以及 ,在做组合选择的时候可以大胆使用。而本文主要讲的是DOM编程可能最耗时的地方,重 阅读全文

posted @ 2015-08-11 09:14 lessfish 阅读(9120) 评论(7) 推荐(14) 编辑

2015年8月8日 #

高性能JavaScript DOM编程

摘要: 我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵。有个贴切的比喻,把DOM和JavaScript(这里指ECMScript)各自想象为一个岛屿,它们之间用收费桥梁连接,ECMAScript每次访问DOM,都要途径这座桥,并交纳“过桥费”,访问DOM的次数... 阅读全文

posted @ 2015-08-08 13:41 lessfish 阅读(1829) 评论(4) 推荐(2) 编辑

2015年7月30日 #

浏览器缓存机制浅析

摘要: 非HTTP协议定义的缓存机制 浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires; Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HTML Meta 标签,Web开发者可以在HTML页面的<head>节点中加入<meta>标签,代码如下: 上述 阅读全文

posted @ 2015-07-30 10:43 lessfish 阅读(2187) 评论(2) 推荐(6) 编辑

2015年7月23日 #

高性能JavaScript 循环语句和流程控制

摘要: 前言 上一篇探讨了达夫设备对于代码性能的影响,本文主要探讨并且测试各种常见的循环语句的性能以及流程控制中常见的优化。循环语句 众所周知,常用的循环语句有for、while、do-while以及for-in,forEach。除了for-in和forEach性能略低外,平时我们对前三者的选择更多的是... 阅读全文

posted @ 2015-07-23 09:56 lessfish 阅读(2044) 评论(4) 推荐(6) 编辑

2015年7月19日 #

高性能JavaScript 编程实践

摘要: 前言 最近在翻《高性能JavaScript》这本书(2010年版 丁琛译),感觉可能是因为浏览器引擎的改进或是其他原因,书中有些原本能提高性能的代码在最新的浏览器中已经失效。但是有些章节的有些内容还是相当不错的,譬如第八章编程实践,为了方便以后的查阅,对此做个总结。失效的代码也会在以后做更进一步的... 阅读全文

posted @ 2015-07-19 11:19 lessfish 阅读(1382) 评论(4) 推荐(2) 编辑

2015年7月14日 #

HTML5 postMessage 跨域交换数据

摘要: 前言 之前简单讲解了利用script标签(jsonp)以及iframe标签(window.name、location.hash)来跨域交换数据,今天我们来学习一下HTML5的api,利用postMessage来跨域交换数据。和前面一些方式交换数据方式不同的是,利用postMessage不能和服务端交 阅读全文

posted @ 2015-07-14 16:28 lessfish 阅读(5730) 评论(2) 推荐(5) 编辑

导航

统计信息

点击右上角即可分享
微信分享提示