Mickey 小站

尘世迷途小码农

Ugly Num

丑陋数

记录一道ugly num的题目,该题给出一个数字n,需要程序给出第n个丑陋数,丑陋数的定义是数字拆解到最后,只能由2,3,5三个数字联乘,比如30 = 2 * 3 * 5就是丑陋数,而14 = 2 * 7由于7的存在,不是一个丑陋数,需要注意的是,1是一个特殊的丑陋数 题目地址 Write a program to find the n-th ugly number. Ugly num...

vue-source-code-analysic(3)

阅读Vue源码有感(3)

前一篇博客从源码的角度讲述了vue作为一个MVVM框架,data是如何和视图进行绑定的,这篇博客将讲述vue2中的4个事件API vue2和vue1有很多的不同,总的来说,框架变得更加严格,鲁棒性较好,其中非常重要的一个改变就是移除了$broadcast和$dispatch两个方法,优化了性能 vue2中提供了4个事件API挂在vm上,分别是$emit, $on, $off, $once...

vue-source-code-analysic(2)

阅读Vue源码有感(2)

上一篇博客大概讲述了Vue中视图和数据绑定的方法,以及更新data中数据如何映射到视图中,这篇博客从源码的角度进行分析,加深理解~ 首先看一下Vue官网的一张图片 这张图比较清晰的展现了Vue中的响应式原理,和前一篇博客中展示的一样,首先通过一次渲染触发Data的get函数进行依赖收集,每一个data中的key对应一个dep观察者,dep中存在一个sub...

vue-source-code-analysic(1)

阅读Vue源码有感(1)

最近,正在有条不紊的对Vue进行第二次学习,前不久,比较细致的学习了Vue组件相关的知识,包括Vue.extend()生成一个Vue组件的构造器,Vue.component()对Vue的组件进行全局组册…随后,对照Vue的官方文档,学习了平时不常用的一些API,对Vue的生命周期有了更加深刻的理解,最近几天,阅读了各位大大对于Vue源码的总结,在此记录一下,作为自己阅读Vue源码的基础吧~ ...

random-number

随机数问题

前几天看到我司的一道面试题,给出一个rand3函数,能够等概率返回1、2、3,要求实现一个rand7函数,能够等概率的返回1-7 初看题目,有两种思路 调用rand3的结果除以3,再乘以7,这样得到的结果是7/3,14/3以及7,显然不符合题目要求 重复调用rand3的结果7次,再除以3,这样得到的结果为7/3~7,也不符合题目要求  反过来想想,如果是提供rand7...

find-no-repeat-element

寻找不重复的元素

这是一个系列的算法题,主要就是从一堆重复的数字中,寻找没有重复出现的数字 其实这种题目,暴力用一个hashmap去存储出现的次数,然后在遍历一遍hashmap就能找到想要的答案 但是,这类题目,用位运算来说非常方便 Single Number 这是leetcode上的一道题,题目地址, 这是位运算在这类问题中最基本的用法 Given an array of integers, ev...

Trapping Rain Water

接最多的雨水

今天看面经,看到一道接雨水的题目,记录一下~ Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining. For example, Given [...

Minimun-window-substring

最小窗口子字符串

记录一道两指针的滑动窗口的题目,难度在leetcode上是hard Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n). For example, S = "ADOBECODEBANC" T =...

Best Time to Buy and Sell Stock with Transaction Fee

付费交易股票的最佳时机

一道贪心法的问题,解法实在巧妙,记录一下 Your are given an array of integers prices, for which the i-th element is the price of a given stock on day i; and a non-negative integer fee representing a transaction fee. ...

promise-implement

手写promise

在ES6中,Promise算是非常重要的一部分,它的出现,很大程度上解决了js中回调地狱的问题,极大的简化了js代码的书写,这篇文章基于的是Promise/A+的规范来实现的,对应的代码仓库 promise-version-1 第一个版本的promise还是相当简单的,then方法绑定回调函数至promise实例上,resolve函数执行的时候,依次执行绑定的回调函数,类似于观察者模式 ...