LeetCode

在一个数组中找到和为一定值的算法,怎么写 ??? 这是什么背包问题呀 ???

你通过加加减减的方式肯定不行吧!

eg: 其实这并不是一个简单的算法问题!居然涉及到背包问题。

for的遍历的方式!

List集合不仅有contains,还有排序!

感觉与链表和树有关的数据结构,都会用到递归。

list集合中的元素是能够进行排序的!

对list集合中特定属性进行排序:

对字符串进行输出(\t):

对二维数组进行排序:

什么是Comparator???

将list集合转换为二维数组!

打印数组,Arrays.toString()比转换为流更好使!

1.双重for循环,去查找最值问题,效率真的很低!可以用双指针法代替。

2.是时候面对递归和dfs了!

上述的这段dfs写的真好!

list集合的浅克隆问题:

彻底搞懂Java普通类以及集合List浅克隆和深克隆_克隆list-CSDN博客

双指针,我总是越界!!!

map.getOrDefault(key, new ArrayList<String>());//这个方法可以代替if...else...

遍历数组:Arrays.stream(arr).forEach(System.out::println);

Collection是什么?

map.values()//能够获取map中所有的value值!

map集合的遍历:

// Set<Map.Entry<String, List<String>>> entries = map.entrySet();

// //2、开始遍历

// for (Map.Entry<String, List<String>> entry : entries) {

// L.add(entry.getValue());

// }

直接将一个数组名赋值给另一个数组:地址传递---指向同一地址!

Object类中的clone()方法:int[] arr = arr1.clone();

回溯算法

回溯是递归的副产品,只要有递归就会有回溯。

回溯算法就是暴力搜索,并不是什么高效的算法,最多再剪枝一下。

回溯算法能解决如下问题:

  • 组合问题:N个数里面按一定规则找出k个数的集合。
  • 排列问题:N个数按一定规则全排列,有几种排列方式
  • 切割问题:一个字符串按一定规则有几种切割方式
  • 子集问题:一个N个数的集合里有多少符合条件的子集
  • 棋盘问题:N皇后,解数独等等。

回溯算法的模板:

复制代码
//一定要分成横纵两个方面思考回溯
void backtracking (参数) {
     if(终止条件) {
     存放结果; return;
    }
    
    for(选择:本层集合中元素(树中结点孩子的数量就是集合的大小)){
     //注意i=0,i=start的区别
     处理节点;
      backtracking(路径,选择列表);//递归  注意(i) 和(i++)的区别
      //回溯,撤销处理结果
    }

我们使用的一些开源框架,他们的底层设计是十分复杂的。看源码是需要经验的,需要懂非常多JAVA技术知识的。看源码的前提是要掌握反射、代理模式设计、AOP、多线程、GUC、并发包、CS、线程池等。

最基本的源码是SpringBoot,这个源码十分的重要,因为在以后,你想写框架,就会涉及到spring的bean生命周期。框架的本身就把底层的很多思想做了封装。源码里面有大量的数据结构。

相关推荐
wfeqhfxz25887822 小时前
YOLO13-C3k2-GhostDynamicConv烟雾检测算法实现与优化
人工智能·算法·计算机视觉
芝士爱知识a3 小时前
2026年AI面试软件推荐
人工智能·面试·职场和发展·大模型·ai教育·考公·智蛙面试
Aaron15883 小时前
基于RFSOC的数字射频存储技术应用分析
c语言·人工智能·驱动开发·算法·fpga开发·硬件工程·信号处理
石去皿4 小时前
大模型面试通关指南:28道高频考题深度解析与实战要点
人工智能·python·面试·职场和发展
程序员辣条4 小时前
AI产品经理:2024年职场发展的新机遇
人工智能·学习·职场和发展·产品经理·大模型学习·大模型入门·大模型教程
AI大模型测试4 小时前
大龄程序员想转行到AI大模型,好转吗?
人工智能·深度学习·机器学习·ai·语言模型·职场和发展·大模型
美团程序员4 小时前
80道经典常见测试面试题
软件测试·面试·职场和发展·软件测试面试
sunguang20184 小时前
“懂不懂管理,一看便知”:做管理就是3件事,抓大、放小、管细做管理,其实就是要做好三件事:抓大、放小、管细。
经验分享·职场和发展
ProcessOn官方账号4 小时前
程序员如何与同龄人拉开差距?这5张让你快速提升认知,打开格局!
深度学习·职场和发展·学习方法
阿福赚美刀4 小时前
跨境电商公司如何高效培养新人:实战经验分享
职场和发展·电脑