最后前端到底应该怎么学才好?
如果你打算靠自己摸索自学,那么你首先要了解学习前端的基本大纲,这是你将要学习的主要内容,理解以及掌握好这些内容,便可以找到一份初级的前端开发工作。你还需要有一套完整的前端学习教程,作为初学者最好的方式就是看视频教程学习,初学者容易理解接受。
不要选择买书学习,这样的方式没有几个人能学会,基本都是看不下去书,也看不懂书。如果喜欢看书的学弟,可以买一些经典的书籍作为辅助即可,主要还是以看教程为主。每天抽出固定几个小时学习,做好长期学习的准备。学习编程并不是每天光看视频,你学习编程最重要的目的是为了编写软件产品,提供给大众使用,所以用手写出代码实现功能才是我们要做的事情。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
一、情景回顾
- 时间:2016.9.19 15:10-17:10
- 地点:山东省网络环境智能计算技术重点实验室
- 事件:乐视笔试
总体来说,乐视笔试内容体量不算少,主要分为35道选择题,3道编程题,时间稍微有点紧张。
二、编程题
2.1 数字游戏
package cn.edu.ujn.practice;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
/\*\*
\*
\* @author SHQ
数字游戏
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
真是一个无聊的夜晚啊,小B和小C在宿舍中实在无聊之极,因此决定玩一个数字游戏打发时间。小B首先开始,她给小C的问题是:
给定任意一个整数,小C可以交换该数中任意的不同位,能够得到的最小数值是多少?前提是不能有前导0。
小C很快就给出了一个答案,小B希望你来帮她检验答案的正确性,你能帮忙吗?
输入
输入中有多组测试数据。每组测试数据的第一行为一个没有前导0的整数n(0=< n =< 10^9),第二行为另一个整数m(0=<m=<10^9),小C给出的问题答案。
输出
对每组测试数据,在单独的行中输出结果,若小C的答案是正确的,输出YES,否则输出NO。
样例输入
3310
1033
4
5
样例输出
YES
NO
思路:
拆分+比较器 40%
\*/
public class LeShi\_1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {//注意while处理多个case
int a = in.nextInt();
int b = in.nextInt();
System.out.println(resolution(a, b));
}
}
private static String resolution(int a, int b){
if(a < 0 || b < 0 || a > 1000000000 || b > 1000000000)
return "NO";
if(a == 0 && b == 0){
return "YES";
}
if(a == 0 && b != 0){
return "NO";
}
ArrayList<Integer> list = new ArrayList<Integer>();
while(a > 0){
list.add(a % 10);
a /= 10;
}
int [] numbers = new int [list.size()];
for(int i = 0; i < list.size(); i++){
numbers[i] = list.get(i);
}
String result = PrintMinNumber(numbers);
// System.out.println(result);
if(result.equals(String.valueOf(b)))
return "YES";
else
return "NO";
}
private static String PrintMinNumber(int [] numbers) {
if(numbers == null || numbers.length == 0){
return null;
}
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < numbers.length; i++){
list.add(numbers[i]);
}
// 升序(自定义比较器)
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer str1, Integer str2) {// 实现接口中的方法
return (str1+""+str2).compareTo(str2+""+str1);
}
});
StringBuffer sb = new StringBuffer();
int cnt = 0;
for(int str : list){
if(str == 0)
cnt++;
}
sb.append(list.get(cnt));
for(int i = 0; i < cnt; i++){
sb.append(0);
}
for(int i = cnt+1; i < list.size(); i++){
sb.append(list.get(i));
}
return sb.toString();
}
}
此题通过率40%。用到了之前在《剑指Offer》中类似的代码。可见,多刷题,有效的刷题还是有效果的。
2.2 数正方形
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
小B正在做一个关于图像理解方面的研究,她的目标是识别图像中的轮廓。当前阶段,她希望能够识别正方形。图像用一个矩阵表示,矩阵的每个元素对应于图像中的一个像素点,值为0或1,0表示背景,1表示前景。需要寻找的正方形必须满足线宽为单像素,且大小至少为2x2。她希望你能帮她找出图像中满足如下条件的两类正方形:
正方形的边与矩阵边缘平行;
正方形的边与矩阵对角线平行;
如以下矩阵中只有一个第一类正方形:
0000000
0111100
0100100
0100100
0111100
以下的矩阵中只有一个第二类正方形:
0000000
0010000
0101000
0010000
0000000
此外,不管何种类型的正方形,其每条边必须等长,且不能有任何边或顶点的像素与不属于该正方形的像素相连接。
输入
输入中有多组测试数据。第一行为一个整数t(1 =< t =< 10000),表示测试数据的组数,接下来是t组测试数据。每组测试数据的第一行为两个整数n和m(2<=n, m<=250),n和m分别为矩阵的行数和列数,接下来是n行数据,每行由m个0或1构成。
每个测试输入中的字符数不超过10^6个。
输出
对每组测试数据,在单独的行中输出矩阵中符合要求的正方形的数量。
样例输入
3
8 8
00010001
00101000
01000100
10000010
01000100
00101000
11010011
11000011
10 10
1111111000
总结
- 对于框架原理只能说个大概,真的深入某一部分具体的代码和实现方式就只能写出一个框架,许多细节注意不到。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
-
算法方面还是很薄弱,好在面试官都很和蔼可亲,擅长发现人的美哈哈哈…(最好多刷一刷,不然影响你的工资和成功率???)
-
在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。
-
要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!
第一次跳槽十分忐忑不安,和没毕业的时候开始找工作是一样的感受,真的要相信自己,有条不紊的进行。如果有我能帮忙的地方欢迎随时找我,比如简历修改、内推、最起码,可以把烦心事说一说,人嘛都会有苦恼的~
祝大家都有美好的未来,拿下满意的 offer。