前言 在2016年的校招过程中面试了很多大公司,做了很多套笔试题,遇到了很多算法面试场景。深知其中的水深火热,笔试中绝大一部分是算法题,如果连算法基础题不及格,就会失去见到面试官的机会。当然,自己也不能算是精通,只能说有…
标签:架构
Common Lisp的restart特性
主流的编程语言中,表示出现错误的手段不外乎两种: 函数调用返回错误码 函数调用抛出异常 C语言就属于前者,它的fopen(3)函数在成功打开文件时返回一个FILE指针,失败时返回NULL,并将错误代码写入全局变量errn…
以生产者/消费者模式实例带你理解线程间通信
本篇文章基于synchronized和ReentrantLock来讲解如何进行线程间通信,关于上述两种锁的内容,可以看这篇文章。本篇文章关于线程间通信的讲解将围绕生产者/消费者模式以实例的形式全方位展示线程间通信的方式。…
JavaScript 记忆术 - 给函数添加缓存功能
记忆术一词是我在《高阶Perl》一书中看到的,书中介绍了如何利用Perl语言的闭包特性给子程序添加记忆功能,从而减少计算量;是一种用空间换时间的优化方法。 Fibonacci 函数 斐波纳契(Fibonacci )数列以…
线程通信
1 wait和notify 首先需要注意的是wait和notify都不在thread里,而是在Object里为什么呢? 原因是因为:wait和notify的使用时针对锁的,如果没有synchronized,wait和no…
腾讯面试题-0到9999这1万个数中有多少个数字7
(请不要理解为多少个数包含7) 题目 0 到 9999 这 1 万个数中有多少个数字 7 ?(请不要理解为多少个数包含 7) 思路&答案 总共有四位数,每位数的可能分别有10种(0~9)。 每一个位,都会出现0-…
这道上台阶的编程题你会不会?(递归和迭代思想)
面试题: 编程题:有n个台阶,一次只能上1步或者2步,共有多少种走法? 考察的知识点: 递归和循环迭代 递归: n 的值 走法 算式 1 只能一次1步 f(1) = 1 2 (1)一次走1步<br />(2)…
Reactor模式理解
Reactor模式 也可以叫反应器模式或者应答者模式 reactor模式简介 让我们先了解一下阻塞I/O与非阻塞I/O I/O 是非常缓慢的 I/O绝对是计算机操作中最慢的。访问RAM的事件为ns级别,而访问磁盘或网络上…
剑指offer第二版-7.重建二叉树
本系列导航:剑指offer(第二版)java实现导航帖 面试题7:重建二叉树 题目要求: 根据二叉树的前序遍历和中序遍历,重建该二叉树。 1 / \ 2 3 / \ 4 5 思路:以上图为例,前序遍历为12453,中序遍…
Go语言:入门
C++的代码的组织,依赖的管理规定几乎为零。学习golang的时候,一上来就是看语法,看代码,在代码组织和依赖管理这里碰了不少壁,所以重新看了一下官方文档,并做下备忘。 注意:Go是跨平台的,本文基于Ubuntu(Lin…
RxCocoa 源码解析——代理转发
平常我们使用 RxSwift 的时候,一般不会去直接使用 delegate,譬如要处理 tableView 的点击事件,我们会这样:tableView.rx.itemSelected.subscribe(onNext: …
需求如何管理,聊聊我的需求管理方法论(一)
我们要想做好一个产品,将一个产品做成功,对互联网软件行业来说需求管理是影响项目成败的关键因素。尽管影响项目成功的九大知识领域指出整体管理、范围管理、时间管理、费用管理、质量管理、沟通管理、成本管理、人力资源管理和采购管理…