文末
我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。
首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。
更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
前端面试题汇总
JavaScript
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
性能
linux
前端资料汇总
package cn.edu.ujn.practice;
import java.util.Scanner;
public class XC_1 {
/**
* 二分查找
*
* 题目描述:
请写一个二分查找算法查找一个数最先出现的index,如果数不在集合中需要返回(-1)-当前数应该出现的位置。
例如 [1,3,6],查找5,5应该是在index=2的位置但并不在集合中。返回(-1)-2 = -3。
输入
第一行读入一个整数x,表示要查找的数;第二行读入一个正整数n,表示待查找数组的元素个数;第三行读入n个递增整数,构成待查找的数组。
输出
整数x在数组中出现的索引位置(索引从0开始计数);如果不存在,返回(-1)-当前数应该出现的位置。
样例输入
3
5
0 1 3 5 6
样例输出
2
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 待查找的数
int target = in.nextInt();
// 数组长度
int len = in.nextInt();
int [] arr = new int[len];
for(int i = 0; i < len; i++){
arr[i] = in.nextInt();
}
System.out.println(resolution(target, arr, arr.length));
}
private static int resolution(int target, int [] arr, int len){
if(arr == null || arr.length == 0)
return 0;
int er = 0;
return binarySearchRecursion(arr, target, 0, len-1, er);
}
private static int binarySearchRecursion(int arry[],int value,int start,int end, int er)
{
if(start > end)
return -1-er;
int mid = start + (end-start)/2;
if(arry[mid] == value)
return mid;
else if(value < arry[mid])
{
end = mid - 1;
er = mid;
return binarySearchRecursion(arry,value,start,end, er);
}
else
{
start = mid + 1;
er = mid+1;
return binarySearchRecursion(arry,value,start,end, er);
}
}
}
股票利润
package cn.edu.ujn.practice;
import java.util.Scanner;
import java.util.regex.Pattern;
public class XC_2 {
/**
* 股票利润
*
题目描述:
假如一个数组中存储了一个股票在一天交易窗口内各时间点的股票价格(正整数)。
只允许一次买入和一次卖出,请提供一个算法,计算出通过卖出和买入可以得到的最大利润
输入
价格序列,用,号隔开
输出
最大的可能利润
样例输入
2,3,2,4
样例输出
2
*
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Pattern pattern = Pattern.compile("[,]");
// 一天内的股票价格
while(in.hasNextLine()){
String str = in.nextLine();
String [] arr = pattern.split(str);
int len = arr.length;
int [] a = new int[len];
for(int i = 0; i < len; i++){
a[i] = Integer.parseInt(arr[i]);
}
System.out.println(resolution(a, len));
}
}
private static int resolution(int [] arr, int len){
if(arr == null || len == 0)
return -1;
int max = 0;
for(int i = 0; i < len; i++){
for(int j = i; j < len; j++){
if((arr[j]-arr[i]) > max)
max = arr[j]-arr[i];
}
}
return max;
}
}
遍历最短路径长度
package cn.edu.ujn.practice;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Pattern;
public class XC_3 {
/**
* 遍历最短路径长度
*
题目描述:
暴风降临的龙母丹妮莉丝·坦格利安要骑着她的龙以最快的速度游历各国,她的谋士们纷纷献策规划路线。
作为她的谋士之一和仰慕者的你,决定冒险穿越到21世纪借助计算机来寻求最优路线。
请设计一段程序,读取各国两两之间的距离,距离以邻接矩阵表示,并计算出遍历各国的最短路径长度。
输入
第一行:国家数量,假设为n
后续n行是国家间距离的邻接矩阵表示
输出
遍历各国的最短路径长度
样例输入
4
0,1,2,3
1,0,4,5
2,4,0,2
3,5,2,0
样例输出
5
思路: 组合 --> 最小值
TC: O(n!)
SC: O(n)
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Pattern pattern = Pattern.compile("[,]");
// 获取国家数
int lines = in.nextInt();
int [][] arr = new int [lines][lines];
// 缓冲输入--Key
in.nextLine();
for(int i = 0; i < lines; i++){
int k = 0;
String s = in.nextLine();
String [] str = pattern.split(s);
#### 总结
=============================================================
从转行到现在,差不多两年的时间,虽不能和大佬相比,但也是学了很多东西。我个人在学习的过程中,习惯简单做做笔记,方便自己复习的时候能够快速理解,现在将自己的笔记分享出来,和大家共同学习。
**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**
个人将这段时间所学的知识,分为三个阶段:
第一阶段:HTML&CSS&JavaScript基础
![](https://img-blog.csdnimg.cn/img_convert/3e0d5b0f6a97b823cc1ef22ff1a18191.png)
第二阶段:移动端开发技术
![](https://img-blog.csdnimg.cn/img_convert/fc21db0a800494796dc6408ce1486031.png)
第三阶段:前端常用框架
![](https://img-blog.csdnimg.cn/img_convert/644efd4ddd0f8d43535f1982ec0da6e4.png)
* 推荐学习方式:针对某个知识点,可以先简单过一下我的笔记,如果理解,那是最好,可以帮助快速解决问题;如果因为我的笔记太过简陋不理解,可以关注我以后我还会继续分享。
* 大厂的面试难在,针对一个基础知识点,比如JS的事件循环机制,不会上来就问概念,而是换个角度,从题目入手,看你是否真正掌握。所以对于概念的理解真的很重要。