算法面试Java版
算法面试Java版
乔治的哥们
这个作者很懒,什么都没留下…
展开
-
字节跳动-2019春招研发部分笔试编程题汇总
解题思路 1. 本题采用Java字符串的replaceAll()方法 及 正则表达式的使用2. 关于正则表达式 (.)\\1+ 括号中的点表示任意字符,后面的\\1表示取第一个括号匹配的内容, 后面的加号表示匹配1次或1次以上 二者加在一起就是某个字符重复两次或两次以上 $1 取出匹配的第一个字符 $1$1 取出两次 (.)\\1(.)\\2 同理package 字节跳动.R_2019春招_;import java.util.Scanner;public class...原创 2021-04-23 15:12:51 · 819 阅读 · 0 评论 -
字节跳动--笔试题--手串
思路: 将给定的条件以键值对的形式存入HashMap中键为颜色编号,值为该颜色所在的集合根据map的值 集合比较是否有 不符合条件的情况package 字节跳动.problems01;/** * @author Ren */import java.util.*;public class R02_手串 { public static void main(String[] args) { Scanner in = new Scanner(System.i...原创 2021-03-26 17:09:26 · 271 阅读 · 0 评论 -
字节跳动-笔试题--用户喜好
本题看似简单,其实不能用正常的思维去考虑。要另辟蹊径去优化。不然就不是字节跳动了这种暴力写法 会由于时间复杂度过高而超时,正解见下一段代码/** * @author Ren */import java.util.*;public class R01_用户喜好 { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 用户数 .原创 2021-03-26 11:27:49 · 362 阅读 · 0 评论 -
《剑指offer-第二版》-面试题09-用两个栈实现队列(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)用两个栈实现队列 题目: 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead , 分别完成在队列尾部插入节点和在队列头部删除节点的功能。两个栈,存入数据时把数据全部压入第一个栈,然后把第一个栈中的数据弹出压入第二个栈中。出队:即从第二个栈中弹出数据。入队:即若第二个栈有数据,先将第二个栈的数据压入第一个栈,然后重复步骤一。代码示例:package ch.原创 2021-02-20 21:46:43 · 176 阅读 · 0 评论 -
《剑指offer-第二版》-面试题06-从尾到头打印链表(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)从尾到头打印链表 题目: 输入一个链表的头节点,从尾到头反过来打印出每个节点的值。 链表节点定义如下:class Node{ Object data; //每个节点的数据 Node next; // 每个节点指向下一个节点的连接 public &.原创 2021-02-17 20:24:22 · 196 阅读 · 0 评论 -
《剑指offer-第二版》-面试题05-替换空格(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)替换空格 题目: 请实现一个函数,把字符串中的每个空格替换成“20%”.例如,输入 “We are happy” , 则输出 “We%20are20%happy”.思路一: 直接使用java字符串中的内置函数 replaceAll(str1,str2)思路二: 可以将字符串中的每个字符看做数组中的每个元素,故此题变为数组替换并插入元素的题。必须先统计总的空格数目,然后从后往前插入。package ch02.原创 2021-02-13 22:24:32 · 137 阅读 · 0 评论 -
《剑指offer-第二版》-面试题04-二维数组中的查找(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)二维数组中的查找题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如: 1 2 3 4 &nbs.原创 2021-02-12 22:19:15 · 101 阅读 · 0 评论 -
《剑指offer-第二版》-面试题03-数组中重复的数字-02-不修改数组找出重复的数字(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)不修改数组找出重复的数字 题目描述: 在一个长度为n+1的数组里的所有数字都在1~n的范围内,所以数组中至少有一个数字是重复的。请找出数组中任意一个重复的数字,但不能修改输入的数组。例如,如果输入长度为8的数组{2 , 3 , 5 , 4 , 3 , 2 , 6 , 7 },那么对应输出的是重复的数字2或3 思路一: 复制数组,按照03_01的方法手动排序。 时间O(n) 空间O(n)思路二: 使用hashm.原创 2021-02-12 21:42:43 · 174 阅读 · 1 评论 -
《剑指offer-第二版》-面试题03-数组中重复的数字-01-找出数组中重复的数字(Java)
点击查看: 《剑指offer-第2版》 全部面试题 详解目录(Java版)题目一: 找出数组中重复的数字在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的。但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或3。思路一: 先排序,在比较。思路简单,时间复杂度为O(nlogn)思路二: 利用哈希表解决,每次向哈希表中存放数据 并比较是否存在,.原创 2021-02-09 22:55:40 · 230 阅读 · 0 评论 -
《剑指Offer - 第2版》— 面试编程题目详解目录(Java版)
题号题目详解链接T03-01数组中重复的数字 – 找出数组中重复的数字 T03-02数组中重复的数字 – 不修改数组找出重复的数字原创 2021-02-09 22:41:37 · 135 阅读 · 0 评论