数据结构与算法
正赶上金三银四,说到数据结构与算法这个词,肯定有不少人会眉头一皱。也不知从什么时候开始,以字节为主的一大波公司面试开始了对算法的连环拷问。如果事前没有系统地刷一波题的话,算法这一关还是比较难过的。
有人欢喜有人愁,对此挺多刚毕业的应届生表示,算法这东西好像并不是他们的拦路虎。相对于一些年龄稍大的程序员仅仅在做题这方面确实是抵不过20出头的小伙子,我们的优势主要工作经验,与项目经验,算法这一方面倒成了我们的短板。
如何补齐这一短板?
现在不管是面试还是工作,大势所趋之下,算法都是我们程序员绕不开的东西了。为了让大家更快地补齐这一短板,我前段时间在字节的一位老友拿到了他当初五面字节,一直在刷的LeetCode刷题笔记,以及算法大牛左程云(左神)相关视频精讲,相信一定能对大家的算法进阶有点帮助!
LeetCode刷题笔记
目录总览
-
动态规划系列
-
动态规划答疑篇
-
动态规划和回溯算法到底谁是谁爹?
-
动态规划设计:最长递增子序列
-
经典动态规划:0-1背包问题
-
经典动态规划:编辑距离
-
经典动态规划:高楼扔鸡蛋(进阶)
-
经典动态规划:戳气球
-
经典动态规划:最长公共子序列
-
动态规划之子序列问题解题模板
-
动态规划之博弈问题
-
动态规划之正则表达
-
动态规划之四键键盘
-
动态规划之KMP字符匹配算法
-
贪心算法之区间调度问题
-
数据结构系列
-
算法思维系列
-
高频面试系列
内容节选
-
动态规划
-
数据结构
-
算法思维
-
面试高频
下面是为大家收集到的左程云(左神)字节跳动算法精讲教程,跟算法书电子版,相信肯定对小伙伴们有帮助。
左神字节算法精讲
-
左神算法书PDF版
最后
算法这东西你想要进大厂或者往更高的层次进阶的话,肯定是绕不开的!如果你对上面所展示的全部资料感兴趣的话,可以看看
Java常用代码
1、List遍历
List<String> items = new ArrayList<>();
items.add("A");
items.add("B");
items.add("C");
items.add("D");
items.add("E");
//lambda
//Output : A,B,C,D,E
items.forEach(item->System.out.println(item));
//Output : C
items.forEach(item->{
if("C".equals(item)){
System.out.println(item);
}
});
//method reference
//Output : A,B,C,D,E
items.forEach(System.out::println);
//Stream and filter
//Output : B
items.stream()
.filter(s->s.contains("B"))
.forEach(System.out::println);
2、Map遍历
Map<String, Integer> items = new HashMap<>();
items.put("A", 10);
items.put("B", 20);
items.put("C", 30);
items.put("D", 40);
items.put("E", 50);
items.put("F", 60);
items.forEach((k,v)->System.out.println("Item : " + k + " Count : " + v));
items.forEach((k,v)->{
System.out.println("Item : " + k + " Count : " + v);
if("E".equals(k)){
System.out.println("Hello E");
}
});
3、遍历enum
public enum ColumnTypeEnums {
INTEGER("int", "Integer"),
VARCHAR("varchar", "String"),
DATE("date", "java.util.Date"),
TIME("datetime", "java.util.Date"),
NUMERIC("numeric", "java.math.BigDecimal"),
DECIMAL("decimal", "java.math.BigDecimal"),
TINYINT("tinyint", "byte"),
SMALLINT("smallint", "short"),
BIGINT("bigint", "long"),
FLOAT("float", "double"),
DOUBLE("double", "double"),
CHAR("char", "String");
private String pdm;
private String java;
public void setPdm(String pdm) {
this.pdm = pdm;
}
public void setJava(String java) {
this.java = java;
}
public static ColumnTypeEnums getByPdm(String pdm) {
ColumnTypeEnums e = null;
for (ColumnTypeEnums en : ColumnTypeEnums.values()) {
if (en.getPdm().equals(pdm)) {
e = en;
}
}
return e;
}
public static void main(String[] args) {
ColumnTypeEnums e = ColumnTypeEnums.getByPdm("tinyint");
Console.log("===============");
Console.log("{},{},{}", e.name(), e.getPdm(), e.getJava());
}
}