自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 收藏
  • 关注

原创 【Java基础】字符串String

String,字符串,一个引用类。存储结构是char数组首先介绍一下他的常用方法:1、从构造方法开始,他有四个构造方法,参数分别是:String, cahr value[], StringBuffer, StringBuilder2、equals方法String重写了该方法,这个方法会传递一个Object类型的参数,首先进行判断引用是否一样,一样直接返回true,因为都是在字符串常量池...

2020-03-12 18:23:16 73

原创 【贪心】雷达设备

假设海岸是一条无限长的直线,陆地位于海岸的一侧,海洋位于另外一侧。每个小岛都位于海洋一侧的某个点上。雷达装置均位于海岸线上,且雷达的监测范围为d,当小岛与某雷达的距离不超过d时,该小岛可以被雷达覆盖。我们使用笛卡尔坐标系,定义海岸线为x轴,海的一侧在x轴上方,陆地一侧在x轴下方。现在给出每个小岛的具体坐标以及雷达的检测范围,请你求出能够使所有小岛都被雷达覆盖所需的最小雷达数目。输入格式...

2020-03-05 22:11:03 95

原创 货仓选址--非常简单的贪心

在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数N。第二行N个整数A1~AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000输入样例:46 2 9 1输出样例:12...

2020-03-05 21:30:43 333

原创 股票买卖--非常简单的贪心

给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。输入格式第一行包含整数 N,表示数组长度。第二行包含 N 个不大于 10000 的正整数,表示完整的数组。输出格式输出一个整数,表示最大利润。...

2020-03-05 21:18:51 106

原创 【蓝桥杯】大臣的旅费--第四届蓝桥杯省赛C++A组【DFS解法】

很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的...

2020-03-01 22:26:34 77

原创 【蓝桥杯】全球变暖--第九届蓝桥杯省赛C++A/B组--BFS宽搜

全球变暖--BFS解法你有一张某海域 N×N 像素的照片,”.”表示海洋、”#”表示陆地,如下所示:........##.....##........##...####....###........其中”上下左右”四个方向上连在一起的一片陆地组成一座岛屿,例如上图就有 2 座岛屿。由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说...

2020-02-27 17:35:36 120

原创 【宽搜】地牢大师--又一个基本的宽搜

你现在被困在一个三维地牢中,需要找到最快脱离的出路!地牢由若干个单位立方体组成,其中部分不含岩石障碍可以直接通过,部分包含岩石障碍无法通过。向北,向南,向东,向西,向上或向下移动一个单元距离均需要一分钟。你不能沿对角线移动,迷宫边界都是坚硬的岩石,你不能走出边界范围。请问,你有可能逃脱吗?如果可以,需要多长时间?输入格式输入包含多组测试数据。每组数据第一行包含三个整数 L,R,C ...

2020-02-26 22:27:34 57

原创 【蓝桥杯】完全二叉树的权值--第十届蓝桥杯省赛C++A/B组

给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是 A1,A2,⋅⋅⋅AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是 1。输入格式第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,⋅⋅⋅AN。输出格式输出一...

2020-02-26 16:34:42 224

原创 【DFS、BFS】红与黑--基本的深搜、宽搜

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量。在接下来的 H 行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘...

2020-02-21 23:07:43 253

原创 【蓝桥杯】交换瓶子--第七届蓝桥杯省赛C++B组

图有 N 个瓶子,编号 1∼N,放在架子上。比如有 5 个瓶子:2 1 3 5 4要求每次拿起 2 个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换 2 次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式第一行包含一个整数 N,表示瓶子数量。第二行包含 N 个整数,表示瓶子目前的排列状况。输出格式...

2020-02-20 19:35:37 179

原创 【BFS】献给阿尔吉侬的花束

阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个 R×C 的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字符 . 表示可以通行。...

2020-02-19 21:17:49 94

原创 【蓝桥杯】日志统计--第九届蓝桥杯省赛C++B组

小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。其中每一行的格式是:ts id 表示在 ts 时刻编号 id 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开...

2020-02-18 21:12:23 51

原创 数列区间最大值--线段树

输入一串数字,给你 M 个询问,每次询问就给你两个数字 X,Y,要求你说出 X 到 Y 这段区间内的最大数。输入格式第一行两个整数 N,M 表示数字的个数和要询问的次数;接下来一行为 N 个数;接下来 M 行,每行都有两个整数 X,Y。输出格式输出共 M 行,每行输出一个数。数据范围1≤N≤105,1≤M≤106,1≤X≤Y≤N,数列中的数字均不超过231−1输入样例:...

2020-02-15 22:50:44 131

原创 动态求连续区间和--树状数组与线段树

树状数组和线段树,这玩意吧,我也整不明白具体的东西,反正是记住了树状数组的这三个关键的函数给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b] 的连续和。输入格式第一行包含两个整数 n 和 m,分别表示数的个数和操作次数。第二行包含 n 个整数,表示完整数列。接下来 m 行,每行包含三个整数 k,a,b (k=0,表示求子数列[a,b]的和;k=1,表...

2020-02-13 10:26:28 126

原创 【蓝桥杯】外卖店优先级--第十届蓝桥杯省赛C++A组

“饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M ...

2020-02-13 10:21:13 210

原创 【蓝桥杯】航班时间

小 h 前往美国参加了蓝桥杯国际赛。小 h 的女朋友发现小 h 上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。小 h 对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京和美国东部有 12 小时时差,故飞机总共需要 14 小时的飞行时间。不久后小 h 的女朋友去中东交换。小 h 并不知道中东与北京的时差。但是小 h 得到...

2020-02-13 10:10:35 296

原创 【蓝桥杯】日期问题

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

2020-02-09 22:09:44 44

原创 【蓝桥杯】移动距离

第六届蓝桥杯省赛C++B组X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 1,2,3…当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为 6 时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .....我们的问题是:已知了两个楼号 m 和 n,需要求出它们之间的最短移动距离(不能斜线方向移动)。...

2020-02-09 12:55:48 48

原创 【蓝桥杯】回文日期

枚举、模拟在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多...

2020-02-08 11:15:34 483

原创 【蓝桥杯】错误票据

枚举,模拟某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入格式第一行包含整数 N,表示后面共有 N 行数据。接下来 N 行,...

2020-02-08 11:07:13 64

原创 【蓝桥杯】特别的数的和

枚举,模拟小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。请问,在 1 到 n 中,所有这样的数的和是多少?输入格式共一行,包含一个整数 n。输出格式共一行,包含一个整数,表示满足条件的数的和。数据范围1≤n≤10000输入样例:40输出样例:...

2020-02-06 16:20:20 74

原创 【蓝桥杯】递增三元组

给定三个整数数组A=[A1,A2,…AN],B=[B1,B2,…BN],C=[C1,C2,…CN],请你统计有多少个三元组 (i,j,k) 满足:1≤i,j,k≤NAi<Bj<Ck输入格式第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,…AN。第三行包含 N 个整数 B1,B2,…BN。第四行包含 N 个整数 C1,C2,…CN。输出格式一个整数表...

2020-02-06 16:12:47 119

原创 【蓝桥杯】连号区间数

枚举、模拟小明这些天一直在思考这样一个奇怪而有趣的问题:在 1∼N 的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间 [L,R] 里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 R−L+1 的“连续”数列,则称这个区间连号区间。当 N 很小的时候,小明可以很快地算出答案,但是当 N 变大的时候,问题就不是那么简单了,现在小明需要你的帮助...

2020-02-06 15:56:01 86 1

原创 【正则表达式】初识正则表达式

初识正则表达式学Java介绍String类的时候说到过他的一个split()方法,老师说这个函数要传一个参数,返回一个根据参数把字符串分割成一个字符数组,其实这传入的就是一个正则表达式。正则表达式就是用一种方式来描述一个字符串,然后用来进行匹配。比如说:我要找一个数,他可能在最前面有一个负号-?要表示:可能有一个负号,后面跟着一位或者多位数字:-?\d这里注意一下关于反斜杠 " \ "...

2020-02-03 12:42:41 79

原创 【哔哩哔哩笔试】顺时针打印数字矩阵

顺时针打印数字矩阵给定一个数字矩阵,请设计一个算法从左上角开始顺时针打印矩阵元素输入描述输入第一行是两个数字,分别代表行数M和列数N;接下来是M行,每行N个数字,表示这个矩阵的所有元素;当读到M=-1,N=-1时,输入终止。输出描述:请按逗号分割顺时针打印矩阵元素(注意最后一个元素末尾不要有逗号!例如输出“1,2,3”,而不是“1,2,3,”),每个矩阵输出完成后记得换行输入...

2020-01-31 12:33:12 106

原创 【网易校招】数对--数学

题目描述牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。牛牛希望你能帮他计算一共有多少个可能的数对。输入描述:输入包括两个正整数n,k(1 <= n <= 10^5, 0 <= k <= n - 1)。输出描述:对于每个测试用例, 输出一个正整数表示可能的...

2020-01-30 09:53:28 177

原创 【蓝桥杯】饮料换购--数学

乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。输入格式输入一个整数 n,表示初始买入的饮料数量。输出格式输出一个整数,表示一共能够喝到的饮料数量。数据范围0<n<10000输...

2020-01-29 10:43:08 92

原创 【蓝桥杯】蚂蚁感冒--数学

长 100 厘米的细长直杆子上有 n 只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是 1 厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有 1 只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。输入格式第一行输入一个整数 n, 表示蚂蚁的总数。接着的一行是 ...

2020-01-29 10:40:35 73

原创 【Java】Foreach循环与迭代器

增强形for循环List<String> list = new ArrayList<String>();for(String s : list) System.out.println(s);这么写就会遍历这个list 输出里面的全部字符串那么他是怎么完成这个工作的呢?因为有一个Iterable的接口,这个接口包含一个能够产生Iterator的iterator()...

2020-01-23 11:52:00 58

原创 【前缀和】蓝桥杯-K倍区间

给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?输入格式第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 Ai。输出格式输出一个整数,代表 K 倍区间的数目。数据范围1≤N,K≤100000,1≤Ai≤10000...

2020-01-20 22:05:01 63

原创 【Java】【多态】构造器的执行是你想象的那样么?

构造器和多态构造器的调用顺序首先,我们知道构造器是为了能够给对象正确的进行初始化赋值使用的,为了能够生成一个正确的对象;如果只是一个类,那么构造器在创建对象的时候调用,不会出现什么匪夷所思的事情,但是如果有了相关的继承关系基类的构造器总是在导出类的构造过程中被调用,而且按照继承层次逐渐向上链接,以使每个基类构造器都能够得到调用,这样做是非常有意义的,因为导出类只能访问自己的成员,不能访问基类...

2020-01-20 15:32:58 46

原创 【Java】final关键字

你真的了解final关键字了么?许多编程语言都有某种方法来告诉编译器有一块数据是恒定不变的,Java中就是通过final关键字来实现;1、一个永不改变的编译时常量2、一个在运行时被初始化的值,而你不希望他被改变也就是说这个恒定不变的数值不一定一定得是在编译时就定死了的,也有可能是在运行时期生成的,一个static 又是 final的域只占据一段不能改变的存储空间对于基本数据类型来说,fi...

2020-01-19 16:42:47 60

原创 【网络原理】数据链路层

复习的笔记,如有错误欢迎指正    数据链路层,什么是数据链路呢,一条网线(物理线路)我们叫做一个链路,在上面加上相关的协议,就称他为一个数据链路。在数据链路上传输的基本单位我们称之为:帧    数据链路层的三个基本问题:1、封装成帧:给数据部分加入帧头和帧尾,区分一个完整的数据帧2、透明传输:如果真中间出...

2020-01-17 21:19:23 154

原创 162.寻找峰值【二分】

峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。示例 ...

2020-01-14 11:40:43 35

原创 74.搜索二维矩阵【二分】

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3输出: true示例 2:输入:matr...

2020-01-14 11:25:19 39

原创 【博弈论】巴什博奕

故事是这样的小涵对小李说我们来玩一个拿球游戏,你说桌子上有多少个球,每次可以拿1到3个球,最后谁拿光桌子上的球谁就赢了小李:30个球,你先拿小涵:2个(剩28)小李:1个(剩27)小涵:3个(剩24)(青蛙开始感觉水温不太对)小李:3个(剩21)小涵:1个(剩20)小李:2个(剩18)小涵:2个(剩16)小李:1个(剩15)小涵:3个(剩12)小李:3个(剩9)小涵:1...

2020-01-05 13:12:29 77

原创 Java内存模型与线程

今天就来跟你一块知道知道Java内存模型内容参考自《深入理解Java虚拟机》  在大二的Java课程中知道了简单的Java线程相关知识,感觉挺有意思的,当时还买了本《Java并发编程实战》,但是后来发现自己底子实在是太薄,很多东西看不明白,了解了Java内存模型之后对这方面也会有了一定的帮助  让计算机并发执行若干个运算任务 和 更充分利用计算机的处理器性能。听起来很正常,但是实现起来就...

2020-01-04 14:06:30 53

原创 34. 在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], tar...

2020-01-02 21:29:46 117 1

原创 听说你也想知道_Java垃圾回收算法

今天就跟你一块知道知道垃圾回收算法内容参考《深入理解Java虚拟机》要谈垃圾回收,首先我们得知道究竟谁是垃圾?垃圾回收主要关注的是堆中的内存,而堆中存放的是各种各样的的对象实例,也就是说,我们要找到那些已经“死掉”的对象,怎么判断对象死没死呢,有一种非常简单理解的算法—引用计数算法给对象添加一个引用计数器,每有一个地方引用他,就+1,引用失效就-1,计数器是0了的对象就是一个不可在被使...

2020-01-02 21:05:10 137

原创 【算法】听说你还不懂_前缀和

今天就让你知道知道啥叫前缀和算是一个比较简单的思想了是为了在解决数组中,快速的求得一段区间的所有元素的和是多少前缀和数组中放的就是前面所有元素的和这样查找某一段的时候直接S[R] - S[L-1]就好了举个栗子有一个数组 int a[5]:1 2 3 4 5那么对应的前缀和数组就是 int s[5]:1 3 6 10 15我要是想知道数组a中下标从2到4的和,就不用遍历之前...

2020-01-02 19:46:24 316 1

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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