• 简历做好这一点,求职成功几率高几倍

    有些人看了我「值乎」上的问题「求职简历做好这一点,拿到 Offer 几率高 80%」 的答案之后来跟我说很「坑」。 这么说吧,我觉得这个问题不止值 10 块钱,这个问题应该值 1000 块。 其实,写这个问题的时候我就知道,无论答案是什么,都会有人觉得「坑」,不值十块钱,他们其实需要的是一只「金手指」,点石成金,最好看完这个谜底之后就「嗖」的一下,一份钱多事少离家近的 Offer 砸在作为求职者的你的大脸上。 你现在可以省十块钱,我写这个问题只想告诉你,「要检查简历里的专业术语啊笨蛋」。 我看过无数份简历,但很少有人能把简历……
  • code123
    面试前做好这几点,求职成功率高几倍

    面试前做好这几点,求职成功率高几倍

    一生要面试多少回?才能不流泪;一生要流多少泪,才能不心碎。 这篇算是冯老师的番外篇吧。关于面试,我从这么几个主题去说说:求职类型……
  • code123
    面试时,如何向公司提问?

    面试时,如何向公司提问?

    今天,我看到硅谷招聘经理Steve Buckley的一篇文章,正好探讨了同一件事的另一面:应聘者如何向公司提问。 很多人将面试看作一种单向选……
  • code123
    面试心得与总结(BAT、网易、蘑菇街)

    面试心得与总结(BAT、网易、蘑菇街)

    之前实习的时候就想着写一篇面经,后来忙就给忘了,现在找完工作了,也是该静下心总结一下走过的路程了,我全盘托出,奉上这篇诚意之作,……
  • Java线程面试题集锦

    下面是我自己收集整理的Java线程相关的面试题,可以用它来好好准备面试。 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成该任务只需10毫秒。 2) 线程和进程有什么区别? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。线程是进程的子集,一个进程可以有很多……
  • 40个Java集合面试问题和答案

    Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下: (1)使用核心集合类降低开发成本,而……
  • Java高级开发工程师面试考纲

    如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构、算法、网络、操作系统等知识。因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对Java高级开发工程师职位的考核纲要,希望可以帮助到需要的人。 当前,市面上有《Java XX宝典》类似的图书,而且图书中的内容都着重在讲解Java最为基础的部分,最严重的是,里面有着大量错误的内容,极具误导性。另外,网上也有各种各样的Java面试题,很多也是着重在Java语言基础上。实际上,如果要应聘高级开发工程师职务,……
  • code123
    程序员面试中常见10大算法汇总

    程序员面试中常见10大算法汇总

    以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列……
  • 近期的一些面试经历分享

    背景 自从2013年离开北京后,就没有在固定单位上班了。 期间捣鼓过一些东西,也挣了点小钱,日子也没有到过不下去非要找工作的地步。 只是觉得自身仍有不足,作为技术,还是想再开阔一点,再深刻一点,再专业一点。 也没有去刻意地投递简历,本来老婆怀孕,自己在家,时间比较多,所以就写写博客,所以会有一些来自私信的机会。 既然有机会,那就愉快地去追一下,本篇,就记录一下最近几个月的一些经历。 云XX 这个公司招聘全栈,要求精通编译、操作系统、计算机网络,要精通一门底层语言,比如汇编或者C,要精通一门高级语言,比如C++……
  • 20.5 给出两个单词,找到它们的最短距离

    题目 有一个很大的文本文件,里面包含许多英文单词。给出两个单词,找到它们的最短距离 (以它们之间隔了多少个单词计数)。你能在O(1)的时间内返回任意两个单词间的最短距离吗? 你的解法空间复杂度是多少? 解答 先看一个例子,为了简单起见,我们假设文件里就只有以下两句话。然后, 我们现在来求is和name的最短距离。假设相邻的两个单词距离为1。 What is your name My name is Hawstein 12 What is your name My name is Hawstein  首……
  • 20.4 写一个函数,计算0到n之间2的个数。

    题目 写一个函数,计算0到n之间2的个数。 解答 最简单直观的方法就是对于0到n之间的数,一个个地去统计2在它们上出现的个数, 然后累加起来即可。求2在某个数上出现的次数需要O(logn)的时间,一共有n个数, 所以共需要O(nlogn)的时间。 代码如下: int Count2(int n){ int count = 0; while(n > 0){ if(n%10 == 2) ++count; n /= 10; } return count; } int Count2s1(int n){ int count = 0; for(int i=0; i<=n; ++i) count += Count……
  • 20.3 写一个函数,随机地从大小为n的数组中选取m个整数

    题目 写一个函数,随机地从大小为n的数组中选取m个整数。要求每个元素被选中的概率相等。 解答 这道题目和随机洗牌问题类似,只需要随机选取1个元素, 然后在剩下的元素里面随机选取下一个元素,不断这样操作即可。 这样做能保证每个元素选中的概率一样吗?也就是选中每个元素的概率都是1/n? 答案是YES,让我们来做一下简单的计算。 选第1个元素:在n个中随机选,因此概率为1/n 选第2个元素:在剩下的n-1个中随机选:1/(n-1),由于第1次没有选中它, 而是在另外n-1个中选:(n-1)/n,因此概率为:(n-1)/n * 1/(n-1) = 1/n 选第3个元素……
  • 20.2 写一个随机洗牌函数

    题目 写一个随机洗牌函数。要求洗出的52!种组合都是等概率的。 也就是你洗出的一种组合的概率是1/(52!)。假设已经给你一个完美的随机数发生器。 解答 这是一道非常有名的面试题,及非常有名的算法——随机洗牌算法。 最直观的思路是什么?很简单,每次从牌堆中随机地拿一张出来。那么, 第一次拿有52种可能,拿完后剩下51张;第二次拿有51种可能,第三次拿有50种可能, …,一直这样随机地拿下去直到拿完最后1张,我们就从52!种可能中取出了一种排列, 这个排列对应的概率是1/(52!),正好是题目所要求的。 接下来的问题是,如何写代码去实……
  • 20.1 不能使用+号或其它算术运算符求两个数的和

    题目 写一个Add函数求两个数的和,不能使用+号或其它算术运算符。 解答 为了解决这个问题,让我们来深入地思考一下,我们是如何去加两个数的。为了易于理解, 我们考虑10进制的情况。比如我们要算759 + 674,我们通常从最低位开始加, 考虑进位;然后加第二位,考虑进位…对于二进制,我们可以使用相同的方法, 每一位求和,然后考虑进位。 能把这个过程弄得更简单点吗?答案是YES,我们可以把求两个数的和分成两步, “加"与"进位",看例子: 计算759 + 674,但不考虑进位,得到323。 计算759 + 674,只考虑进位,而不是去加每一位,得……
  • 19.11 设计一个算法,找到数组中所有和为指定值的整数对

    题目 设计一个算法,找到数组中所有和为指定值的整数对。 解答 时间复杂度O(n)的解法 我们可以用一个哈希表或数组或bitmap(后两者要求数组中的整数非负)来保存sum-x的值, 这样我们就只需要遍历数组两次即可找到和为指定值的整数对。这种方法需要O(n) 的辅助空间。如果直接用数组或是bitmap来做,辅助空间的大小与数组中的最大整数相关, 常常导致大量空间浪费。比如原数组中有5个数:1亿,2亿,3亿,4亿,5亿。sum为5亿, 那么我们将bitmap中的sum-x位置1,即第4亿位,第3亿位,第2亿位,第1亿位,第0位置1. 而其它位置都浪费了。 如果……