自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(248)
  • 收藏
  • 关注

原创 字节测开面经

9.15 4:00-5:00一面:1.实习经历(问的超级详细),做了什么,这个工具怎么实现,什么命令,rxjava框架怎么实现异步调用,数据怎样获取,整个项目的架构,除了做这个工具外,还有其他的业务测试相关的吗2.可以来实习吗3.实习中的最大收获4.实习项目中遇到的难题,怎样解决的5.输入URL怎样找到资源6.知道哪些集合类7.HashMap的实现原理,HashMap是安全的吗,那concurrentHashMap是怎样实现线程安全8.讲一下垃圾回收机制9.一个编程题:一个数组中找

2021-03-22 20:18:19 404

原创 阿里测开面经

1.问实习,都做了什么,除了做测试工具外,还有没有做过其他测试相关的东西,组内人做什么???我怎么知道,问的挺多2.问了笔试中的两个问题的思路,为什么没有异常处理3.计算机网络:输入一个百度网址怎么找到它的物理资源4.Linux:怎么查找进程中的一个线程5.测试人员在项目开发阶段中都做什么6.产品发布前测试人员还做什么7.以后打算做哪个方向,业务测试?测试工具开发?8.问spring中resource,autowire注解9.反问什么是泛型?什么是泛型擦除?什么是控制反转,什么是依赖注

2021-03-22 20:17:23 717

原创 哔哩哔哩测开面经

一面:47分钟1.实习项目2.对测开的理解3.bilibli视频的测试用例4.视频播放的卡顿可能和那些有关5.一个数组升序排列,一个数组降序排列,将这两个数组按升序排列成一个数组6.他问了一个他说他也不知道的问题:一个硬件帧率是60帧,应用程序是40帧,那么它会显示多少帧呢,反正我说40帧7.两个应用传输过程中会不会出现丢包现象8.一次完整的传输过程(包括建立连接到断开连接)需要几次http请求9.了解过http1.0 ,2.0,3.0的区别吗10.通过md5存储一个图片,如果图片在ps

2021-03-22 20:16:11 718

原创 58转转测开面经

一面:30分钟1.自我介绍2.实习经历,问关于adb的命令3.Linux熟悉的命令,说完给了一个场景让写命令,找出所有java的进程并且全部杀掉,我说的有点问题,他还给我讲了一下4.Java四个关键词作用域,用法:public default protected private5.一个数组有两个重复的数,把它找出来,时间复杂度是多少6.给一个不重复的数组,找出第二大的数,说了优先级队列,排序,让再说一个时间复杂度低的,那就给两个变量标记下了7.List都有哪些实现类,是安全的吗8.反问环

2021-03-22 20:15:37 345

原创 大华测开面经

一面:20分钟1.自我介绍2.深拷贝和浅拷贝3.黑盒测试方法4.说下因果图使用5.==和equals的区别6.百度网盘下载测试用例,归类说明7.实习是开发还是做的测试工作8.学习成绩怎么样,获得过奖学金吗9.Java的特性,分别说一下10.给一个长度1-15的用户输入框,根据边界值测试法,说一下需要测试的长度11.反问环节二面:18分钟1.自我介绍2.成绩怎么样,参加过啥竞赛获奖3.udp和TCP的区别4.微信朋友圈的测试用例5.悲观锁和乐观锁6.面向对象和面向过程7.

2021-03-22 20:14:45 400

原创 蘑菇街测开面经

一面:1.自我介绍2.微信发送图片测试用例3.java内存管理和垃圾回收机制4.编程题:冒泡排序,写过的最简单的5.实习项目6.offer情况7.反问

2021-03-22 20:11:38 112

原创 虾皮面经

一面:一个小时1.自我介绍2.问了一点关于实习的项目3.十分钟手撕代码:找出给定字符串中所有长度大于等于3的回文。4.问了计算机网络相关的,说一下网络层都有哪些协议,那说一下ARP协议的流程,它是干什么的5.说一下传输层的协议,tcp和udp协议的区别6.二叉树的节点的前序遍历序列为{A B H F D E C K G},中序遍历序列{H B D F A E K C G},则后序遍历序列是什么7.说一下栈和队列,说一下他们的删除元素操作8.说一下快排思想,还有他的时间复杂度9.说一下导致死

2021-03-22 20:06:08 1767

原创 k进制之间互转

思路分析:将字符串中的数转换成十进制,然后再转其他进制(2<=k<=36)public String transK(String str,int x,int y){ char[] arr=new char[36]; for(int i=0;i<10;i++){ arr[i]=(char)('0'+i); } for(int i=10;i<36;i++){ arr[i]=(char)('A'+i-10); } int number=Integer.valueOf(

2020-08-15 23:52:25 318

原创 二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路分析:根据二叉搜索树中序遍历有序的情况,中序遍历二叉树,每次将它的前一个节点记录下来与当前节点进行指向转换,由于最后要返回双链表的头部,所以要标记出链表的头节点。public class Solution { TreeNode pre=null; TreeNode root=null; public TreeNode Convert(TreeNode p

2020-08-12 13:34:10 70

原创 二叉搜索树的后序遍历序列

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路分析:序列的最后一个数就是数的根,然后分出树的左右子树,判断左子树比根小,右子树比根大,否则返回false。递归进行判断左子树和右子树。import java.util.Arrays;public class Solution { public boolean VerifySquenceOfBST(int [] sequence) {

2020-08-12 11:44:57 122

原创 把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。方法一:暴力法将数组中的元素进行全排列,找出排列后最小的一个组合import java.util.ArrayList;public class Solution { public String PrintMinNumber(int [] numbers) { if(numbers==null

2020-08-10 16:17:53 153

原创 丑数

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路分析:丑数都是乘2,乘3,乘5得到的,所以只要保证数的有序和去重。public class Solution { public int GetUglyNumber_Solution(int index) { if(index<=0) return 0;

2020-08-10 13:50:01 91

原创 rxjava学习

1、RxJava 的观察者模式RxJava 有四个基本概念:Observable (可观察者,即被观察者)、 Observer (观察者)、 subscribe (订阅)、事件。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer。2、 创建 ObservableObservable 即被观察者,它决定什么时候触发事件以及触发怎样的事件。 RxJava 使用 create() 方法来创

2020-08-06 21:11:52 115

原创 安卓帧率获取方法总结

1.adb shell dumpsys SurfaceFlinger --latency 命令• SurfaceFlinger管理Android帧缓冲区• 每一次命令有128行帧数据,第一行数据表示刷新的时间间隔,剩下127行是帧率数据• 第一列表示应用程序绘制图像的时间点• 第二列表示在软件将帧提交到硬件绘制之前的垂直同步时间• 第三列表示绘制完成时间点2.adb shell dumpsys gfxinfo <PAVKAGE_NAME> framestats命令(不能用于游戏获取

2020-08-06 12:21:38 2957

原创 安卓获取当前进程的内存信息

1.ActivityManager 中的 getProcessMemoryInfo()方法ActivityManager mActivityManager = (ActivityManager) MainApplication .global_context.getSystemService(Context.ACTIVITY_SERVICE);android.os.Debug.MemoryInfo[] memoryInfos = mActivityManager

2020-08-06 11:41:55 882

原创 数组中只出现一次的数字

题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路分析:1.将数组里面的所有数进行异或,最终异或出来的结果就是两个只出现一次的数字的异或值2.异或后位为1说明当前位两位异或数字位有一位是1,一位是0,所以只需要取出一位进行判断即可ret&=(-ret)可以取出最右边异或为1的位3.通过&运算将两个数区分//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果public c

2020-08-05 14:53:25 94

原创 正则表达式匹配

题目描述:请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配思路分析:1.如果p[j]为正常字符, 那么我们看s[i]是否等于p[j], 如果相等,说明匹配成功,接下来看s[i+1…sn-1] 和 p[j+1…pn-1]2.如果p[j] 为’.’, 它能匹配任意字符

2020-08-01 22:26:17 183

原创 表示数值的字符串

题目描述:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。思路分析:需要通过归纳总结出不符合的条件:1.±号后面只能跟数字或者.,±号必须出现在第一位或者是Ee的后面2. .只能出现一次,.后面必须跟数字或者是最后一位3. Ee只能出现一次,后面跟±号或者数字public class IsNumer

2020-08-01 19:51:02 105

原创 矩阵中的路径

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。思路分析:通过visit标记已经访问过的元素,遍历数组的每个节点判断是否以该节点开始,通过回溯找出是否存在给定字符串public class Solution { int[][] visit; public boolean hasPath(char[]

2020-06-06 21:48:01 140

原创 机器人的运动范围

题目描述:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?public class Solution { int count=0; public void func(int[][] flag,in

2020-06-06 19:44:14 100

原创 背包问题

一、01背包问题01背包的特点是:每种物品仅有一件,可以选择放或不放。声明一个二维数组dp[V + 1 , N + 1] ,dp[i ][ j] 表示 前j件物品恰放入一个容量恰为v的背包可以获得的最大价值。1) 当i<weight[j-1] 时, 说明背包容量不足以放下第i件物品,只能选择不拿,此时: dp[i][j]=dp[i][j-1];2) 当 i>=weight[j-1]时,这是背包容量可以放下第i件物品,可以选择拿还是不拿,判断标准:拿这件物品是否能获取更大的价值。

2020-05-31 22:49:59 127

原创 相同的树

题目描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。思路分析:如果两棵树的左子树是相同的,右子树是相同的,并且它们的节点值是相同的,那么他们就是相同的树class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(q!=null&&p!=null){ return isSameTre

2020-05-26 10:16:00 93

原创 二叉树的所有路径

题目描述:给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。class Solution { public List<String> binaryTreePaths(TreeNode root) { List<String> res=new ArrayList<>(); dfs(root,"",res); return res; } public void

2020-05-26 09:38:55 87

原创 N叉树的后序遍历

/*// Definition for a Node.class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List<Node> _children) { val = _val;

2020-05-25 16:57:42 96

原创 合并二叉树

题目描述:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。思路分析:我们可以对这两棵树同时进行前序遍历,并将对应的节点进行合并。在遍历时,如果两棵树的当前节点均不为空,我们就将它们的值进行相加,并对它们的左孩子和右孩子进行递归合并;如果其中有一棵树为空,那么我们返回另一颗树作为结果;如果两棵树均为空,此时返回

2020-05-25 15:11:18 297

原创 将二叉搜索树变平衡

题目描述:给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二叉搜索树是 平衡的 。如果有多种构造方法,请你返回任意一种。思路分析:1.先将二叉搜索树进行中序遍历存储在list中,是有序的,然后用list构建平衡二叉树;2.每次需要找到list的中间值构造节点,然后依次递归构建左节点,右节点class Solution { List<Integer> li

2020-05-25 13:16:15 194

原创 从二叉搜索树到更大和树

题目描述:给出二叉 搜索 树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。方法一:非递归,借助栈,右中左遍历树,将他们的和加起来加上节点的值就是当前节点的值class Solution { int sum=0; public TreeNode bstT

2020-05-25 12:30:56 128

原创 BiNode

题目描述:二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求值的顺序保持不变,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。返回转换后的单向链表的头节点。思路分析:根据二叉树的中序遍历将所有节点的left置空,将right指向下一个要遍历的节点class Solution { public TreeNode convertBiNode(TreeNode root) { Tr

2020-05-25 11:57:26 819

原创 LRU缓存机制

题目描述:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。思路分析:采用双链表

2020-05-25 11:45:22 71

原创 幂集

题目描述:幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。方法一:回溯法class Solution { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> res=new ArrayList<>(); dfs(nums,0,res,new ArrayList<&

2020-05-24 19:56:07 1794

原创 无重复字符串的排列组合

题目描述:无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同class Solution { public String[] permutation(String S) { List<String> res=new ArrayList<>(); func(S.toCharArray(),0,S.length(),res); int len=res.size(); Stri

2020-05-24 17:45:23 430

原创 二进制手表

题目描述:二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。思路分析:将表的每一个灯从0-9进行编号,然后从里面选出num个所有的组合,计算出时间,选出符合的组合class Solution { public List<String> readBinaryWatch(int num) { List<List<Integer>> tmp

2020-05-24 11:22:41 189

原创 字母大小写全排列

题目描述:给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。方法一:如果下一个字符 x是字母,将当前已遍历过的字符串全排列复制两份,在第一份的每个字符串末尾添加 lowercase(x),在第二份的每个字符串末尾添加 uppercase(x)。如果下一个字符 x 是数字,将 x直接添加到每个字符串的末尾。class Solution { public List<String> letterCasePermutati

2020-05-23 22:35:58 344

原创 K 次取反后最大化的数组和

题目描述:给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)以这种方式修改数组后,返回数组可能的最大和。思路分析:1.先将数组进行排序,然后判断小于0的数是否大于K,如果大于,只需要将前K个最小的负数反转即可2.如果小于K,则需要判断反转后剩下K的次数是奇数还是偶数,如果是偶数,肯定是可以通过重叠反转将负数转化为整数3.如果数奇数,只要将反转后的所有正数里面最小的一个变

2020-05-22 21:20:56 169

原创 分发饼干

题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。思路分析:给一个孩子的饼干应当尽量小并且又能满足该孩子,这样大饼干才能拿来给满足度比较大的孩子。因为满足度最小的孩子最容易得到满足,所

2020-05-22 20:59:49 72

原创 柠檬水找零

题目描述:在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。class Solution { public boolean lemonadeChange(int[] bills) {

2020-05-22 20:46:07 121

原创 买卖股票的最佳时机 II

题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。思路分析:1.单独交易:如果明天价格比今天高,则卖出可收益,则进行交易​2.连续上涨交易日:相当于每天都有买卖3.连续下降交易日: 则不买卖收益最大,即不会亏钱。class Solution { public int maxProfit(int[] pri

2020-05-22 20:09:55 104

原创 两地调度

题目描述:公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。思路分析:假设都去B市,然后选择一半的人去A市,选择去A市的人需要是costs[i][0]-costs[i][1]最小的,这样总数是最小的class Solution { public int twoCitySchedCost(int[][] costs) { Arrays.

2020-05-22 19:30:32 262

原创 分割平衡字符串

题目描述:在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。思路分析:局部求最优解,用flag标志是否可以分割成一个平衡字符串,count是平衡字符串的数量class Solution { public int balancedStringSplit(String s) { if(s==null){ return 0;

2020-05-22 17:40:52 91

原创 每日温度

题目描述:根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。class Solution { public int[] dailyTemperatures(int[] T) { Stack<Inte

2020-05-22 08:49:39 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除