【聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路】教程文章相关的互联网学习教程文章

程序员面试金典 - 面试题 10.10. 数字流的秩(map/树状数组)【代码】

文章目录1. 题目2. 解题2.1 map2.2 树状数组 1. 题目 假设你正在读取一串整数。每隔一段时间,你希望能找出数字 x 的秩(小于或等于 x 的值的个数)。 请实现数据结构和算法来支持这些操作,也就是说:实现 track(int x) 方法,每读入一个数字都会调用该方法;实现 getRankOfNumber(int x) 方法,返回 小于或等于 x 的值的个数。示例: 输入: ["StreamRank", "getRankOfNumber", "track", "getRankOfNumber"] [[], [1], [0], [0]] 输出...

2020年“金三银四”,Java程序员如何远程面试谋取高薪offer?【图】

又到一年“金三银四”,因为疫情的影响,今年的金三银四和往年大不一样。不能出门?这可不耽误面试找工作,越来越多的公司选择远程面试。一位产品小伙伴年前辞了职,准备舒舒服服在家过完年后,趁着求职的黄金季再找工作,眼下被这突如其来的疫情打乱了脚步,在家等着既焦虑又着急,甚至都有些后悔年前的冲动辞职。他不仅担心疫情,更担心下个月的房贷去哪里找。疫情带来面试方式的转变,不仅难为了各公司上身穿正装下身穿睡裤的HR...

程序员面试金典-面试题 16.20. T9键盘【代码】【图】

题目: 在老式手机上,用户通过数字键盘输入,手机将提供与这些数字相匹配的单词列表。每个数字映射到0至4个字母。给定一个数字序列,实现一个算法来返回匹配单词的列表。你会得到一张含有有效单词的列表。映射如下图所示:示例 1: 输入: num = "8733", words = ["tree", "used"] 输出: ["tree", "used"]示例 2: 输入: num = "2", words = ["a", "b", "c", "d"] 输出: ["a", "b", "c"] 提示:num.length <= 1000 words.length <= 5...

程序员面试金典-面试题 16.01. 交换数字【代码】

题目: 编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。 示例: 输入: numbers = [1,2]输出: [2,1]提示: numbers.length == 2 分析: 使用异或,或者是加减法均可。 程序:class Solution {public int[] swapNumbers(int[] numbers) {numbers[0] = numbers[0] ^ numbers[1];numbers[1] = numbers[1] ^ numbers[0];numbers[0] = numbers[0] ^ numbers[1];// numbers[0] = numbers[0] + numbers[1];// numbers[1...

程序员面试金典-面试题 16.02. 单词频率【代码】

题目: 设计一个方法,找出任意指定单词在一本书中的出现频率。 你的实现应该支持如下操作: WordsFrequency(book)构造函数,参数为字符串数组构成的一本书get(word)查询指定单词在数中出现的频率示例: WordsFrequency wordsFrequency = new WordsFrequency({"i", "have", "an", "apple", "he", "have", "a", "pen"});wordsFrequency.get("you"); //返回0,"you"没有出现过wordsFrequency.get("have"); //返回2,"have"出现2次wor...

程序员面试金典-面试题 10.11. 峰与谷【代码】

题目: 在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 6, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。 示例: 输入: [5, 3, 1, 2, 3]输出: [5, 1, 3, 2, 3]提示: nums.length <= 10000 分析: 以峰与谷交替的顺序来看,当为峰的位置,如果比前一个元素小,就和前一个元素交换。为谷的位置,如果比前一...

2020/3/12 面试的经历,程序员你怎么看?

流量如水,文章就是一个瓶子,标题是瓶口,内容是瓶身。 瓶子装水有多快依赖瓶口大小,瓶子装水有多少依赖瓶身大小。时间:2020-3-12 下午 3:30 面试 Java开发职位 到达目的地:由于最近疫情情况,在面试现场重新填写了一份求职意向 正面是求职意向,反面是几道面试题:JDK 是什么?JRE 是什么? Java 的平台无关性指的是什么? Java 的环境变量中的 path 有什么作用,环境变量怎么配置? Java 的基本类型有几种? 什么是隐式类型装换...

程序员面试金典-面试题 08.07. 无重复字符串的排列组合【代码】

题目: 无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。 示例1:输入:S = "qwe" 输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]示例2:输入:S = "ab" 输出:["ab", "ba"]提示: 字符都是英文字母。字符串长度在[1, 9]之间。 分析: 遍历字符串中每一个字符,将其插入到已生成的字符串,例如qwe,先生成q,然后遍历到w时,插入到q中,得到qw和wq,再遍历到e时,插入到qw和wq中得eq...

程序员面试金典-面试题 08.05. 递归乘法【代码】

题目: 递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。 示例1:输入:A = 1, B = 10 输出:10示例2:输入:A = 3, B = 4 输出:12 分析: 我们将A看做被乘数,如果A为偶数的话则multiply(A , B) = multiply(A>>1 , B) << 1 ,也就是A/2*B的二倍。 如果A为奇数数的话则multiply(A , B) = multiply(A>>1 , B) << 1 + B ,也就是(A-1)/2*B*2 + B。 程序:class Solutio...

程序员面试金典-面试题 05.02. 二进制数转字符串【代码】

题目: 二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。 示例1:输入:0.625 输出:"0.101"示例2:输入:0.1 输出:"ERROR" 提示:0.1无法被二进制准确表示提示: 32位包括输出中的"0."这两位。 分析: 利用二进制小数部分*2,取整数部分,知道结果为0为止。当循环超过32次时,如果不为0就返回error 程序:class Solu...

程序员面试金典-面试题 04.01. 节点间通路【代码】

题目: 节点间通路。给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。 示例1:输入:n = 3, graph = [[0, 1], [0, 2], [1, 2], [1, 2]], start = 0, target = 2 输出:true示例2:输入:n = 5, graph = [[0, 1], [0, 2], [0, 4], [0, 4], [0, 1], [1, 3], [1, 4], [1, 3], [2, 3], [3, 4]], start = 0, target = 4 输出 true提示: 节点数量n在[0, 1e5]范围内。节点编号大于等于 0 小于 n。图中可能存在自环和平行边。...

程序员:苦苦等来的美团面试,我居然挂了【图】

一面 1、自我介绍 答:自我介绍是面试中唯一的自己主动介绍自己的环节,一定要好好把握好,你数据结构学的好可以手撕一个红黑树你就说我数据结构掌握地很好,反正就是要把自己的优势凸显出来,比如自己对于java的知识较熟悉,我介绍完自己的本科经历以后,我就说我是保送到本校继续读研究生,然后最末尾会加上自己熟悉java,然后面试官就会问java的一些东西; 2、项目介绍及其亮点 答:使劲吹... 3、java的8种数据类型有哪些? 答:...

程序员面试金典-面试题 03.04. 化栈为队【代码】

题目: 实现一个MyQueue类,该类用两个栈来实现一个队列。 示例: MyQueue queue = new MyQueue(); queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false 说明: 你只能使用标准的栈操作 -- 也就是只有 push to top, peek/pop from top, size 和 is empty 操作是合法的。你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操...

程序员面试金典-面试题 03.02. 栈的最小值【代码】

题目: 堆盘子。设想有一堆盘子,堆太高可能会倒下来。因此,在现实生活中,盘子堆到一定高度时,我们就会另外堆一堆盘子。请实现数据结构SetOfStacks,模拟这种行为。SetOfStacks应该由多个栈组成,并且在前一个栈填满时新建一个栈。此外,SetOfStacks.push()和SetOfStacks.pop()应该与普通栈的操作方法相同(也就是说,pop()返回的值,应该跟只有一个栈时的情况一样)。 进阶:实现一个popAt(int index)方法,根据指定的子栈,执...

程序员面试金典-面试题 01.06. 字符串压缩【代码】

题目: https://leetcode-cn.com/problems/compress-string-lcci/ 字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。 示例1:输入:"aabcccccaaa" 输出:"a2b1c5a3"示例2:输入:"abbccd" 输出:"abbccd" 解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长...