自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fiona20的博客

坚持就是胜利!

  • 博客(306)
  • 收藏
  • 关注

原创 计算机系统基础-袁春风老师-mooc-第三章测试习题及解析

P4,算术逻辑部件ALU,加减和逻辑运算都行,还可以直接输出题目说了最低有效字节,则以字节为一个排列的基本单位。首先ff是最低的8bit,最低的8字节。(16进制的ff, 对应占据8bit,为1字节)其次ff是0000 0000 0000 0000 0000 0000 1111 1111高24位都是0,低8位都是1题目要求最低有效字节不变,故X& ox FF ,可以让前面的24位都变成0,后面的就不变x的最高有效字节不变,即从左开始数的8位(二进制表示下)不变,要让其余各位都变为.

2021-06-08 22:54:01 24

原创 计算机系统基础-袁春风老师-mooc-第二章测试习题及解析

解析:108转为二进制:64+32+8+4——1101100——补成16为,不是负数,补0:0110 1100解析:求补码,求1029的二进制表示,再取反+11024+5:100 0000 0101取反+1 :011 1111 1011因为是负数,前面补1补够16位:1111 1011 1111 1011 ——FBFBH解析:-8196,先求补码:8196二进制表示——>取反+1——>补成16位2^13 =8192,10 0000 0000 0000 +4——>10 0.

2021-06-08 19:39:57 26

原创 计算机系统基础-袁春风老师-mooc-第一章测试习题及解析

解析:书第3页:存储器不仅能放数据,也能放指令,形式上数据和指令没有区别。解析:书P4,地址码字段指出指令所处理的操作数的地址,如寄存器编号,主存单元编号。告诉我们操作数不止存储器的数据,还有主存的解析:书P7,最早人们采用机器语言编写程序,但因可读性很差,不易记忆造成阅读和编写困难。解析:牢记一句话:计算机只能处理二进制,即0/1序列——机器语言解析:输入倒是可以直接输进去,但是输出,万一没有按预期输出,代码有错呢?再说应该是交互,不是控制解析:书P16;根据软件的用途,划分为系统和.

2021-06-05 22:35:19 27

原创 LeetCode1834. 单线程 CPU(Java)

题目给你一个二维数组 tasks ,用于表示 n​​​​​​ 项从 0 到 n - 1 编号的任务。其中 tasks[i] = [enqueueTimei, processingTimei] 意味着第 i​​​​​​​​​​ 项任务将会于 enqueueTimei 时进入任务队列,需processingTimei 的时长完成执行。现有一个单线程 CPU ,同一时间只能执行 最多一项 任务,该 CPU 将会按照下述方式运行:如果 CPU 空闲,且任务队列中没有需要执行的任务,则 CPU 保持空闲

2021-04-29 15:16:40 13

原创 LeetCode1123.最深叶节点的最近公共祖先(java/递归+后序遍历)

题目给定一个根为 root 的二叉树,每个节点的深度是 该节点到根的最短距离 。如果一个节点在 整个树 的任意节点之间具有最大的深度,则该节点是 最深的.一个节点的 子树 是该节点加上它的所有后代的集合。返回能满足 以该节点为根的子树中包含所有最深的节点 这一条件的具有最大深度的节点。输入:root = [3,5,1,6,2,0,8,null,null,7,4]输出:[2,7,4]解释:我们返回值为 2 的节点,在图中用黄色标记。在图中用蓝色标记的是树的最深的节点。注意,节点 5

2021-04-27 08:29:12 15

原创 LeetCode897.递增顺序搜索树(Java修改节点指向)

题目给你一棵二叉搜索树,请你 按中序遍历将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。输入:root = [5,3,6,2,4,null,8,1,null,null,null,7,9]输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]分析如果是采用原地改变结点指向的方法的话:需要中间量,来牵线采用链表设置头结点的思想,也给树设置一个头结点head

2021-04-26 20:32:04 9

原创 LeetCode979.在二叉树中分配硬币(Java)

题目给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N枚硬币。在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点)返回使每个结点上只有一枚硬币所需的移动次数。图一:图二:分析1.N个结点总共N个金币;2.不去看移动,落实到每个顶点:一个顶点的值最后都要是1,所以node.val -1就是它需要被给或者给出去的金币数量;如果n

2021-04-25 09:22:59 9

原创 构建虚拟网络,实现虚拟机与物理机的互联互通

一、安装虚拟机,我用到Ubuntu,安装步骤略。二、虚拟机ping通物理机1.找到物理机ip:在物理机上(自己的电脑上),打开cmd,输入ipconfig我这里是用到手机开的热点,所以是无线局域网:2.到虚拟机终端运行ping命令3.如果发现ping不通,排查故障:(1)排查虚拟机网关工作状态:ip route找到网关地址发现虚拟机能ping通,网关工作正常;(2)排查物理机虚拟网卡工作状态:ipconfig发现仅有物理机网卡ip,虚拟网卡未正确获取到同虚拟机同段的ip,到“更改适配

2021-04-25 07:46:36 35

原创 LeetCode105.前序与中序构造二叉树(Java)——VS中序+后序

题目根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:前序:根左右,先处理根节点,再处理左子树,最后右子树中序:确定根节点的位置,划分出左右子树的下标范围 HashMap<Integer, Integer> map = new HashMap<>(); int index = 0;//从前面

2021-04-23 21:32:01 10

原创 LeetCode1448.统计二叉树中好节点的数目(Java)

题目给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。question:如何没有图示,你会发现根节点也算是一个好节点吗?输入:root = [3,1,4,3,null,1,5]输出:4解释:图中蓝色节点为好节点。根节点 (3) 永远是个好节点。节点 4 -> (3,4) 是路径中的最大值。节点 5 -> (3,4,5) 是路径中的最大值。节点 3 -> (3,.

2021-04-23 21:20:39 4

原创 LeetCode106. 从中序与后序遍历序列构造二叉树(Java)

题目根据一棵树的中序遍历与后序遍历构造二叉树。你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]HashMap<Integer, Integer> map = new HashMap<>();// 用于存储中序遍历的元素 int index;// 从后序遍历最后一个元素(根)开始,往前移动 public TreeNode buildTree(int[

2021-04-22 22:13:54 11

原创 LeetCode27.移除元素(Java)

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而.

2021-04-20 21:14:27 5

原创 LeetCode114.二叉树展开为链表(Java)

题目给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]先将右孩子都安置好,再来找他的父节点找前驱节点public class 二叉树展开为链表 { private

2021-04-20 21:08:54 26

原创 蓝桥杯第九届JavaB组复习

能迅速解决的问题,千万不要拖拉,不然后面根本没有时间思考大题!2000是否闰年?是:答案:125用你掌握的最好的方法做public static void main(String[] args) { // 判断方格是否在圆内 int r = 1000; int cnt = 0; for (int x = 1; x <= r; x++) { for (int y = 1; y <= r; y++) { if (x * x + y * y <

2021-04-17 17:29:57 34

原创 蓝桥杯第十届JavaB组复习

自己数:1号位:98 最大,对应17号,往右看,发现17号最大分值是在3号位,所以一号位只能选1号选手——972号位:选10或者20都可以——993号位:17号——994号位:17号已经选了,只能选11或15号——975号位:12或18——98sum =972 +992 +98=490编程:细节一定要注意!!!public static void main(String[] args) { HashSet<String> set = new HashSet&l...

2021-04-17 07:38:28 15

原创 蓝桥杯第十一届JavaB组复习

public static void main(String[] args) { int cnt = 0; for (int i = 1; i <= 2020; i++) { // 将i分解,看有多少个2 int temp = i; while (temp != 0) { int num = temp % 10; if (num == 2) { cnt++; } temp /= 10; } } System.out.p.

2021-04-16 16:32:53 16

原创 蓝桥杯第十二届模拟赛(二)(Java)

小明要用二进制来表示 1 到 10000 的所有整数,要求不同的整数用不同的二进制数表示,请问,为了表示 1 到 10000 的所有整数,至少需要多少个二进制位?解答:2^13=81922^14=163842^ 14 >10000了,此时有15位(因为最右边是2^0开始的)也就是说:14位就可以表示1~2^14-1所以14位就已经足够表示答案提交:14请问在 1 到 2020 中,有多少个数既是 4 的整数倍,又是 6 的整数倍。答案提交:168一个无向...

2021-04-15 19:29:07 11

原创 蓝桥杯2016年第七届省赛JavaB组

一、煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形)…如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。public static void main(String[] args) { long ans = 0; for (int i = 1; i <= 100; i++) { ans += f

2021-04-13 22:13:35 9

原创 double我不知道的细节

double与Double一定不能一概而论。计算结果为小数的运算,若要转为double,要注意括号,double要先强制类型转换第一个数,计算之后再强制类型转换可能与预期答案不符合括号在不同的地方,计算的结果也是不一样的!通常来说,(double) x/ y 与(double) (x) / y 计算结果一样 double mid1 = (double) 8 / 3; double mid3 = (double) (8) / 3; double right1 = (double) 9.

2021-04-13 21:50:03 16

原创 了解尺取法

尺取法又称双指针法(此指针非彼指针)。双指针顾名思义,有两个“指针”,根据实际情况不断地移动,从而推进区间的左右端点以得出答案尺取法通常适用于选取区间有一定规律,或者说所选取的区间有一定的变化趋势的情况。尺取法通常会需要对某些量进行预处理,以便能在使用时快速地判断。适用于移动方向确定(一般是从头到尾)、连续区间的最小或最大问题模板:int r = 1, l = 1;//确定两个指针的初始位置while(l <= n){//确定循环结束条件 while(){//括

2021-04-13 15:33:34 4

原创 蓝桥杯第九届JavaB组——适合数学基础欠佳+编程欠佳的同学参考

一、第几天2000年的1月1日,是那一年的第1天。 那么,2000年的5月4日,是那一年的第几天?注意:需要提交的是一个整数,不要填写任何多余内容。解法一:1月:312月:是否闰年——>是:293月:314月:305月:4累加:31+29+31+30+4=125解法二:求出相差多少天,最后+1public class 第几天 { public static void main(String[] args) throws ParseException { SimpleDa

2021-04-13 11:16:11 54

原创 蓝桥杯第八届省赛JavaB组——复习总结

C的B组JavaB组一、购物单详见:https://blog.csdn.net/weixin_44998686/article/details/115448247?spm=1001.2014.3001.5501数据长,又多,可以用计算器,也可以用EXCEL!二、纸牌三角形详见:https://blog.csdn.net/weixin_44998686/article/details/115448800?spm=1001.2014.3001.5501考察全排列+去重自己在纸上画一下吧

2021-04-11 17:28:46 16

原创 蓝桥杯第八届JavaB组——K倍区间

暴力可以过两个:public class K倍区间 { // 暴力过不了 public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt();.

2021-04-11 07:48:07 10 1

原创 蓝桥杯第八届省赛JavaB组——分巧克力

问题描述儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:  1. 形状是正方形,边长是整数  2. 大小相同例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?输入格式  第一行包含两个整数N和K。(1 &lt

2021-04-10 20:16:46 14 1

原创 蓝桥杯第八届省赛JavaB组——包子凑数

这道题就是考察数学能力呀,还是数论的知识!问题描述小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼

2021-04-10 19:57:19 11

原创 数论知识——两数互质不能得到的最大数

当正整数A与B互质时,用A和B表示不出的最大数为A*B-A-B。

2021-04-10 08:47:06 32

原创 蓝桥杯第八届省赛JavaB组——日期问题(自己写的易懂)

日期问题小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?输入格式

2021-04-08 21:32:45 10

原创 蓝桥杯填空题集(Java)

一、标题:取数位求1个整数的第k位数字有很多种方法。以下的方法就是一种。public class 取数位 { static int len(int x) { if (x < 10) return 1; return len(x / 10) + 1; } // 取x的第k位数字 static int f(int x, int k) { if (len(x) - k == 0) return x % 10; return ——————; // 填空 }

2021-04-07 22:04:25 28

原创 LeetCode80.删除有序数组中的重复项II(Java+双指针)

题目给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。输入:nums = [1,1,1,2,2,3]输出:5, nums = [1,1,2,2,3]解释:函数应返回新长度 length = 5

2021-04-06 20:49:52 7

原创 蓝桥杯第八届省赛JavaA组——方格分割

标题:方格分割6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。请提交该整数,不要填写任何多余的内容或说明文字。化格子为点,每个点都有一个坐标我们从中点(3,3)出发,在四个方向中进行dfs,同时标记当前走的位置和其对称的位置;如果坐标到达边界——x = =0 、y == 0、 x= =6、y=

2021-04-06 19:25:19 18

原创 蓝桥杯第八届省赛Java——承压计算

标题:承压计算X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。金属材料被严格地堆放成金字塔形。 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1

2021-04-06 15:42:14 6

原创 蓝桥杯第八届省赛JavaB组——纸牌三角形

标题:纸牌三角形A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。下图就是一种排法这样的排法可能会有很多。如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?请你计算并提交该数字。注意:需要提交的是一个整数,不要提交任何多余内容。public class 填空_纸牌三角形 { static int count = 0; public static void main(String[] args) { int[] arr =

2021-04-05 22:24:27 17

原创 蓝桥杯第八届省赛 JavaB组——购物单(用Excel解决问题)

一、填空: 购物单小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。取款机只能提供100元面额的纸币。小明想尽可能少取些现金,够用就行了。你的任务是计算出,小明最少需要取多少现金。以下是让人头疼的购物单,为了保护隐私,物品名

2021-04-05 21:30:06 25

原创 成长历程

2021-04-05 20:24:23 8

原创 蓝桥杯第十届省赛(Java)

方法一:直接看同一个编号,在不同的位有不同的评价1号位:编号1,评价 972号位:编号10或者20,评价 993号位:编号17,评价 994号位:编号 11或15,评价 975号位:编号12或15或18,评价98最大:方法二:DFS我写出来的代码运行结果491???!!!我是傻逼我是傻逼我自己一个一个敲的数据,它错了!!!导致答案也错了!!public class 组队2 { public static void main(String[] args) { // 大可不..

2021-04-01 20:16:15 52

原创 学习BufferedReader从控制台接收数据

public abstract class InputStream extends Object implements CloseableInputStream,该抽象类是所有的类表示字节输入流的父类。这需要定义一个类InputStream应用程序必须提供一个方法,返回输入的下一个字节。1.打开接收窗口,命名一个缓存读入区BufferedReader br = new BufferedReader(new InputStreamReader(System.in));2.获取控制台的一行字符串.

2021-04-01 07:49:09 41

原创 Java Split(regex)的学习

1. 按照某一个普通字符进行分割例如:以空格进行分割2. 按照某一个特殊字符切割特殊字符有:( )[ ]{ }$ + ^ - * /?.例如:String[] arr = str.split("\\.");//以.分割字符串特殊字符需要用 \ \ 进行转义3. 按照多个字符切割字符串(1)用“|” 分开多个字符。——以“.” 和空格分割字符串——以“."和?分割——以所有非字母字符的来分割有的字符需要转移,加上 \ \,有点好像不需要,但是为

2021-03-31 21:33:53 18

原创 刷题总结——输入问题、Eclipse启动了非目标程序

输入问题如果要输入一长串的字符串,而之前又输入了单个的数据,那么就需要scanner.nextLine();来吃掉上一行的换行符然后再String string = scanner.nextLine();输入一长串字符串之后记得回车,告诉软件我已经输完了,否则就会一直有光标闪烁,然后自己debug,出现到了某个值,游标就不走了,还不见了的情况未结束输入状态:输入完成光标跳到下一行Eclipse启动非目标程序我想启动这个程序,但是却打开了另一个程序有写漏stati

2021-03-31 20:48:27 7

原创 取一个数的后几位+取各个位上的数

public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int a = n % 10; int b = n % 100; int c = n % 1000; int d = n % 10000; System.out.println("后1位:" + a); System.out.println("后2位:" + b); Syst

2021-03-30 16:32:03 57

原创 LeetCode63.不同路径II(Java)

题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输出:2解释:3x3 网格的正中间有一个障碍物。从左上角到右下角一共有 2 条不同的路径:向

2021-03-30 10:52:36 5

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除