题解
从Hello World开始
我很好请走开谢谢
这个作者很懒,什么都没留下…
展开
-
【CSP】回收站选址
#include <bits/stdc++.h>using namespace std;int n;bool isExist(int a[][2], int x, int y){ for(int i = 0; i < n; i++){ if(a[i][0] == x && a[i][1] == y){ return true; } } return false; }int main(){ cin >> n; int原创 2021-04-11 10:37:47 · 111 阅读 · 0 评论 -
【CSP】报数
#include <bits/stdc++.h>using namespace std;string change(int num){ string s; stringstream ss; ss << num; ss >> s; return s;}int main(){ int n; cin >> n; int a=0, b=0, c=0, d=0; for(int i = 1; i <= n; i++){原创 2021-04-11 09:02:59 · 198 阅读 · 0 评论 -
【CSP】1246 (28分)
#include <bits/stdc++.h>using namespace std;string change(int num){ stringstream ss; string s; ss << num; ss >> s; return s;}int main(){ int n; string s; cin >> n >> s; string temp; string begin = "2"; f原创 2021-04-11 08:43:09 · 156 阅读 · 0 评论 -
【Java】去除字符串中的空格问题 && String.join && list中的元素拼接为字符串 &&翻转list的顺序,但不改变其中的字符顺序
1.去除字符串中的空格问题去除全部空格系列str.trim(); //去掉首尾空格str.replace(" “,”"); //去除所有空格,包括首尾、中str.replaceAll(" ", “”); //去掉所有空格,包括首尾、中间str.replaceAll(" +",""); //去掉所有空格,包括首尾、中间str.replaceAll("\s*", “”); //可以替换大部分空白字符, 不限于空格去除多余空格,要求字符串中间只有一个空格// 正则匹配连续的空白字符作为原创 2020-08-14 18:01:27 · 977 阅读 · 0 评论 -
【LeetCode-06】20有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true来源:力扣(LeetCode)链原创 2020-08-14 16:33:49 · 143 阅读 · 0 评论 -
【LeetCode-05】43字符串相乘
题目给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类型(比如原创 2020-08-13 11:21:22 · 154 阅读 · 0 评论 -
【LeetCode-07-08-09-10】【BFS模板】二叉树的最小深度 && 岛屿数量 && 打开转盘锁 && 完全平方数
BFS模板下面四个题都是套用这个模板写的,仔细对比。//计算从起点 start 到终点 target 的最近距离 int BFS(Node start, Node target) { Queue<Node> q; // 核心数据结构 Set<Node> visited; // 避免走回头路 q.offer(start); // 将起点加入队列 visited.add(start); int step = 0; //原创 2020-08-17 12:23:58 · 153 阅读 · 0 评论 -
【Java】队列 && 循环队列 && Queue && Deque && BFS模板
队列1.队列的实现// "static void main" must be defined in a public class.class MyQueue { // store elements private List<Integer> data; // a pointer to indicate the start position private int p_start; public MyQueu原创 2020-08-16 23:15:54 · 214 阅读 · 0 评论 -
【Java】map
之前复制的别人的博客,找不到原网址了,找到我会后加package basic;import java.util.HashMap;import java.util.Map;//map使用方法public class MapDemo { public static void main(String[] args) { // map实例化 Map<String, Integer> maps = new HashMap<>();原创 2020-08-14 16:32:35 · 185 阅读 · 0 评论 -
【java】deque
之前复制的别人的博客,找不到原网址了,找到我会后加测试代码:package collections;import java.util.Deque;import java.util.LinkedList;/** * @Package collections * @date 2017-11-28下午5:53:32 */public class DequeTest { /** * @param args */ public static void mai原创 2020-08-14 16:31:42 · 233 阅读 · 0 评论 -
第三章 3.42单链队列链式存储结构
#include <stdio.h>#include <string.h>#include <stdlib.h>//------单链队列--队列的链式存储结构------- typedef int qelemtype;typedef struct qnode{ qelemtype data; struct qnode *next;}qnod...原创 2019-05-14 17:13:42 · 243 阅读 · 0 评论 -
用顺序表实现数值转换(此程序为十进制转换成八进制)
用顺序表实现数值转换(此程序为十进制转换成八进制)#include <stdio.h>#include <stdlib.h>#define OK 1#define ERROR 0#define OVERFLOW -2#define STACKSIZE 100#define INCREMENT 10typedef int status;typedef ...原创 2019-04-13 16:18:03 · 556 阅读 · 0 评论 -
【LeetCode-01】【java】1343. 大小为 K 且平均值大于等于阈值的子数组数目
题目描述给你一个整数数组 arr 和两个整数 k 和 threshold 。请你返回长度为 k 且平均值大于等于 threshold 的子数组数目。示例 1:输入:arr = [2,2,2,2,5,5,5,8], k = 3, threshold = 4输出:3解释:子数组 [2,5,5],[5,5,5] 和 [5,5,8] 的平均值分别为 4,5 和 6 。其他长度为 3 的子数组的平均值都小于 4 (threshold 的值)。示例 2:输入:arr = [1,1,1,1,1], k =原创 2020-08-06 11:45:00 · 169 阅读 · 0 评论 -
二叉树遍历(前序、中序、后序)-Java实现
复制于此博客: https://www.cnblogs.com/zhi-leaf/p/10813048.html一、前序遍历访问顺序:先根节点,再左子树,最后右子树;上图的访问结果为:GDAFEMHZ。1)递归实现public void preOrderTraverse1(TreeNode root) { if (root != null) { System.out.print(root.val + "->"); preOrderTraverse1(r原创 2020-08-08 10:59:56 · 184 阅读 · 0 评论 -
【LeetCode-04】235二叉搜索树的最近公共祖先
题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8输出: 6解释: 节点原创 2020-08-08 10:15:08 · 194 阅读 · 1 评论 -
【LeetCode-03】951. 翻转等价二叉树
题目:我们可以为二叉树 T 定义一个翻转操作,如下所示:选择任意节点,然后交换它的左子树和右子树。只要经过一定次数的翻转操作后,能使 X 等于 Y,我们就称二叉树 X 翻转等价于二叉树 Y。编写一个判断两个二叉树是否是翻转等价的函数。这些树由根节点 root1 和 root2 给出。示例:输入:root1 = [1,2,3,4,5,6,null,null,null,7,8], root2 = [1,3,2,null,6,4,5,null,null,null,null,8,7]输出:true解释原创 2020-08-07 19:52:57 · 173 阅读 · 0 评论 -
【Leetcode-02】 112.路径总和 && 437. 路径总和 III
题目给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \5 -3/ \ \3 2 11/ \ \3 -2 1返回原创 2020-08-07 16:43:24 · 161 阅读 · 0 评论 -
【CSP】【Java】最大的矩阵
思路:双重for循环。 从第一条矩阵开始,求之后的矩阵的最小高度,然后算出目前的面积。若比最大的还大,则替换为最大的。package _3_03_最大的矩形;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.Scanner;public class Main { public static void原创 2020-09-12 10:27:14 · 335 阅读 · 0 评论 -
【CSP】【Java】出现次数最多的数
package 题;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO wAuto-generated method stub Scanner原创 2020-09-12 08:06:00 · 216 阅读 · 0 评论 -
【CSP】【Java】画图
import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.Scanner;/* *把每一个方块都看成点 */public class Main2 { public static void main(String[] args) { // TODO wAuto-generated method stub原创 2020-09-11 22:13:27 · 181 阅读 · 0 评论 -
【CSP】【Java】数列分段
public class Main2_简单 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] a = new int[n]; for (int i = 0; i < a.length; i++) { a[i] = scanner.nextInt(); } int cou原创 2020-09-11 09:46:44 · 256 阅读 · 0 评论 -
【CSP】【Java】中间数
思路用一个双重循环,计算出每一个数,比他大的个数以及比他小的个数。然后比较,若相等,则输出。注意: 符合类型的中间数可能会有多个,但是肯定是同一个数字。package _07_1_中间数;import java.util.Arrays;import java.util.Scanner;public class Main_第二次做 { public static void main(String[] args) { // TODO wAuto-generated method stu原创 2020-09-09 16:32:10 · 346 阅读 · 0 评论 -
【CSP】【Java】公共钥匙盒
应该没有比我这更笨的方法了吧……我的思路:整体把控,主要是四部分取钥匙一个人还钥匙多个人还钥匙(按照钥匙的编号,小号先还)同时有人还钥匙和取钥匙(先还后取)根据样例说明,想到以时间为突破口。最外层的循环是根据每个时刻。为了提高一点点效率,在遍历循环之前,先判断了最早取钥匙的时间以及最晚还钥匙的时间。在这个时间节点的范围之内进行循环遍历。然后判断这个时刻有没有要取钥匙或者还钥匙的。那如何判断是有多个人要还钥匙呢? 我用数组进行了记录,把要还钥匙的编号存入一个单独的数组,然后对这个单原创 2020-09-09 14:57:30 · 144 阅读 · 0 评论 -
【CSP】【Java】跳一跳
题解第二次做的比较简单的方法package _05_1_跳一跳;import java.util.Arrays;import java.util.Scanner;public class Main2_第二次做简便方法 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); int a原创 2020-09-07 16:58:37 · 131 阅读 · 0 评论 -
【CSP】【Java】小明放学
题解:仔细思考。import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); long r,y,g,n; r = scanner.nextLong(); y = scanner.nextLong(); g原创 2020-09-07 09:07:20 · 136 阅读 · 0 评论 -
【CSP】【Java】买菜
思路:这个问题可以看成是 给了两个集合,求两个集合的公共部分(交集)。下面有两种办法,分别是:暴力枚举法,分别讨论每一种的情况。1.一个集合被另一个集合包围2.一个集合的一个点被另一个集合包围3.两个集合没有交集简洁:1.先确定两个集合的右端,谁更小。2.然后确定左端是什么情况。解题一:C++理解思路:#include <iostream>using namespace std;int n;int coun = 0;int a[2005];int b[200原创 2020-09-07 09:04:20 · 216 阅读 · 0 评论 -
【CSP】【Java 60分】稀疏向量
不太会改进思路:把输入的两个二维数组换为两个一维数组,非零数字对应,无则补0;最后这两个一维数组的对应下标相乘package _2_17_稀疏向量_60;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int weiShu = scanner.nextInt();原创 2020-08-03 10:59:25 · 597 阅读 · 3 评论 -
LeetCode【41】【Java】缺失的第一个正数
给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1注意:时间复杂度只能是O(n)思路:哈希表先想通一个道理:如果一个数组中,存在小于等于0的数字,则说明这个数组中缺失的第一个正数一定是1—数组长度之间的某个数字。可以先求数组的长度第一次遍历数组:先把数组中全部小于等于0并且大于等于数组长度的数字用1代替,在原创 2020-06-27 21:44:01 · 455 阅读 · 0 评论 -
【蓝桥杯】【算法训练】【Java100分】加法运算
加法运算_没用指针_100分package 题解;import java.util.Scanner;public class _006_加法运算_没用指针_100分 { public static void main(String[] args) { GetTwoInts(); } static void GetTwoInts(){ Scanner scanner = ...原创 2020-03-19 21:52:54 · 538 阅读 · 0 评论 -
【CSP】【Java】窗口 (超详解)
我这个题做了三天,才能完整的写出来。刚开始借鉴网上的一些代码,但因为我对 java 的构造方法的使用总是存在疑点,get/set方法 还有返回的一些值我总是不能彻底的搞明白。如果您有什么好的见解也希望能帮助我一下。谢谢。回归正题。问题描述在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重...原创 2020-03-17 17:26:04 · 866 阅读 · 0 评论 -
【Java】Linkedlist使用总结
添加add():----> 1. add(E e) : 直接在’末尾’处添加元素----> 2. add(int index,E element) : 在’指定索引处添’加元素----> 3. addAll(Collections<? extends E> c) : 在’末尾’处添加一个collection集合----> 4. addAll(int ...原创 2020-03-15 19:42:10 · 207 阅读 · 0 评论 -
【CSP】【Java 100分】数字排列
思路:创建一个1001的数组,利用的是题目给定的条件,所有的数字均不超过1000。 把出现的数字存放在这个1000的数组里面。arr[sc.nextInt]++;package _2_14_数字排列;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanne...原创 2020-03-15 10:49:37 · 133 阅读 · 1 评论 -
【CSP】【Java】日期计算(三种方法--Java对象--数组--暴力)
Java方法创建一个Calendar对象,运用他的 Year .DAY_OF_YEAR;.MONTH .DAY_OF_MONTH;package _2_13_计算日期;import java.util.Calendar;import java.util.Scanner;public class Main_Java法 { public static void main(String...原创 2020-03-15 09:04:33 · 196 阅读 · 0 评论 -
【CSP】【Java 100分】 ISBN号码
问题描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分...原创 2020-03-09 17:00:08 · 263 阅读 · 0 评论 -
【CSP】【Java 100分】消除类游戏
问题描述消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 现在给你一个n行m列的棋盘,棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除...原创 2020-03-08 19:18:40 · 373 阅读 · 0 评论 -
【CSP】【Java100分】火车购票
问题描述请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的...原创 2020-03-08 15:28:22 · 475 阅读 · 0 评论 -
【CSP】【Java】工资计算
问题描述小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算: 1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元; 2) A中不超过1500元的部分,税率3%; 3) A中超过1500元...原创 2020-03-08 11:24:16 · 819 阅读 · 0 评论 -
【CSP】【Java】学生排队
问题描述体育老师小明要将自己班上的学生按顺序排队。他首先让学生按学号从小到大的顺序排成一排,学号小的排在前面,然后进行多次调整。一次调整小明可能让一位同学出队,向前或者向后移动一段距离后再插入队列。 例如,下面给出了一组移动的例子,例子中学生的人数为8人。 0)初始队列中学生的学号依次为1, 2, 3, 4, 5, 6, 7, 8; 1)第一次调整,命令为“3号同学向后移动2”,表示...原创 2020-03-07 16:09:43 · 357 阅读 · 0 评论 -
【CSP】【Java】碰撞的小球
问题描述数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。 当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。 现...原创 2020-03-01 09:03:40 · 311 阅读 · 0 评论 -
【Java】Nim游戏
题目:一共有n堆石子,编号1-n,第i堆中有ai个石子,每一次操作A和B可以从任意一堆石子中取出任意数量的石子,至少取一颗,至多取出这一堆剩下的所有石子,两人轮流行动,取光所有石子的一方获胜,A先动手,给定a,假设两人都采取最优策略,谁会获胜思路:异或结果时1的,则先拿者胜利。(具体为啥不知道。)代码public class _02_Nim游戏 { public static voi...原创 2020-02-24 20:47:38 · 636 阅读 · 0 评论