摘要:
**题目连接:**https://www.acwing.com/problem/content/description/848/ 错误代码分析: 重点就在于这句话: t2 += son[e[j]]; 并不是每一个子节点都应该被加上,这个过程只能在深搜时进行,因为st数组在深搜后就无效了,所以这么写为 阅读全文
摘要:
**题目链接:**https://www.acwing.com/problem/content/description/242/ 题解: 见代码详细注释 AC代码: import java.util.*; public class Main { static int N = (int) 5e4 + 阅读全文
摘要:
概念 (1)竞态条件产生的原因:当一段程序中存在多个线程同时访问同一个共享资源时,竞态条件随之产生 (2)可见性问题: 当一个线程尝试修改一个共享变量的值时,由于该线程对这个共享变量的修改可能仅在当前工作线程内部的缓存中生效,因此其他工作线程无法获知当前工作线程对这一共享变量值的修改 (3)临界区: 阅读全文
摘要:
数组排序 主要利用Arrays.sort方法及其变体 待排序数据对象: Integer[] a = new Integer[10]; int n = 5; Random random = new Random(2); for (int i = 0; i < n; i ++) { a[i] = ran 阅读全文
摘要:
**题目链接:**https://www.acwing.com/problem/content/803/ 解法: 核心lowbit操作:x & -x 操作的含义: x代表原数(不论负数正数):如101110100 -x的计算方式是:x的所有位取反+1,即010001011 + 1 = 0100011 阅读全文
摘要:
线程创建、运行和设置 (1)Java中创建线程的主要两种方式 直接继承Thread类,然后重写run()方法。 构建一个实现Runnable接口的类并重写run()方法,然后创建该类的实例对象,并以其作为构造参数去创建Thread类的对象。建议首选这种方法,因为它可以带来更多的扩展性。 (2)Thr 阅读全文
摘要:
Linux的文件系统结构 常用文件管理命令 (1) ctrl c: 取消命令,并且换行 (2) ctrl u: 清空本行命令 (3) tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项 (4) ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可 阅读全文
摘要:
题目链接:https://www.acwing.com/problem/content/790/ 解法: 主要的问题集中在第22行的处理,记住一个原则:谁流失,统计谁!一旦j++,那么arr[j]将不可能被统计到,所以应该统计所有大于arr[j]的右边的数 AC代码: import java.uti 阅读全文
摘要:
题目链接:https://www.acwing.com/problem/content/description/788/ 解法1: 递归性质,设计一个查找函数,不断缩小搜索范围,最终找到第k个数字。符合递归函数设计原则。 解法2: 二分的思想,每次只对第k个数字所在部分进行排序,最终保证,第k个数处 阅读全文
摘要:
首先需要说明读文件的两种最常见的方式: 第一种是:getResourceAsStream(fileName) 第二种是: String filePath = ReadAndWriteHandler.class.getClassLoader().getResource(FILE_NAME).getFi 阅读全文