
数据结构
文章平均质量分 50
爱就码上行动
一个爱好学习知识的小码农
展开
-
二叉树层序遍历易错点
二叉树层序遍历二叉树的层序遍历也就是他的广度优先遍历。在写二叉树的层序遍历的时候因为自己的习惯发现了 一个爱错的点,代码如下: public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> result = new ArrayList<>(); Queue<TreeNode> queue = new Arra原创 2022-03-02 11:11:40 · 1071 阅读 · 0 评论 -
数组ArrayList源码分析
数组ArrayList源码分析(在公众号“数据结构与算法”中做的学习笔记,不想抄袭,有自己的拓展和理解)get()和set()方法都会先判断是否越界,然后进行相应操作,如果越界则抛出相应异常警告。if (index >= size) throw new IndexOutOfBoundsException(outOfBoundsMsg(index));但是在add()和remove()方法中,我们需要进行数组大小的变动,比如在add()方法中,源码如下:public void add(i原创 2021-10-11 16:04:31 · 214 阅读 · 0 评论 -
用数组方法解决约瑟夫问题
用数组方法解决约瑟夫问题经典的约瑟夫(也就是丢手帕问题),有m个人围成一个圈传手帕(编号为1,2,3…m),从第a(a<m)个人开始为第一个,传到第k个人手里,那么这个人出圈,下一个人为第一个,传到第k个人手里。直到所有人出圈,求出出圈的人的序号组成的序列。这道题的解法有两种:环形链表解法(将这圈人看作环形链表,形象直观)数组解法(中心思想是利用取模来实现循环)这里我们将更为简单的数组解法,代码如下:方法: //big为总人数多少,order为起始的孩子是哪一个,nums为隔几个为下原创 2020-11-06 16:10:33 · 1170 阅读 · 0 评论