- 博客(26)
- 收藏
- 关注
原创 vscode乱码
乱码问题解决readline-sync获取控制台用户输入的内容安装:npm i readline-sync相关使用:const readline = require('readline-sync');var input = readline.question("输入两个数字空格隔开:");console.log(input);var a = input.split(' ')[0];var b = input.split(' ')[1];问题:输出的“输入两个数字空格隔开:”出现乱码
2022-03-25 19:03:54
708
原创 二维数组与稀疏数组间互相转换
B站视频学习后的代码有需要联系public class SparseArray { public static void main(String[] args) { //创建一个原始的二维数组, //0:没有棋子;1:黑子;2:蓝子 int [][] chessArr1=new int[11][11]; chessArr1[1][2]=1; chessArr1[2][3]=2; chessArr1[4][5]=2; System.out.print...
2021-05-02 10:41:30
94
原创 八皇后问题
问题描述:在8*8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。思路:先在第一行第一个放一个皇后在第二行第一个放一个看攻不攻击,攻击的话放在第二行第二个以此类推放第三行的位置也是从第三行第一个位置开始放看合不合格,如果放完第三行所有的位置都不合格的话就回溯到第二行,把第二行的皇后放到下一个位置以此类推进行回溯第一行第一个是皇后的所有情况全部得到后,把第一行的皇后放在第一行的第二个位置继续上面的操作直到得到所有的情况;以此类推得
2021-04-28 19:56:21
90
原创 迷宫回溯问题
首先建立要用的迷宫假设是一个很简单的迷宫(八行七列)用二维数组来表示然后制定一定的策略来走迷宫,假设是从(1,1)点走到(6,5)点从第一个格子开始都是按照下->右->上->左的顺序走(这里注意采用的策略不同走的路径格子数也不同)同时注意格子数组值不同代表不同的涵义:0:没有走过1:墙2:走过了可以走得通3;走过了走不通下面的格子走得通的话就向下走,否则就看右面的格子能不能走通,否则。。以此类推直到走到目标位置package recursion;public cl
2021-04-27 20:10:57
90
原创 递归算法
首先我们介绍分治,递归采用了分治的思想。分治将复杂问题分割成规模和结构相同或相似的子问题,子问题还可以分解成更小的子子问题,直到分解的子问题是一些基本问题,分别解决这些子问题,最后合并子问题的解,即可得到原问题的解。分解解决合并分治法分解出来的子问题相互独立,没有交叉。递归通过自身调用自身或者间接调用自身,把问题范围缩小直到范围缩小到可以直接得到边界数据的结果,然后再在返回的路上求出对于的解。递归算法用到了栈,每递归调用一次原函数就把该函数与其对应参数压栈,直到对应参数到达边缘即可停止.
2021-04-25 21:45:42
63
原创 输入输出和文件操作
流java.io包中包含了输入输出所需要的所有的类,这些流类代表输入源和输出目标流是一个有序的字节序列,输入的一端是信息源,输出的一端是目的地。流中字节有严格顺序,是一种顺序存取方式。java提供了字节流和字符流两个类的层次体系来处理输入输出字节流流中数据以八位字节为单位进行读写是抽象类InputStream和OutputStream的子类字符流流中数据以16位字符为单位进行读写是抽象类Reader和Writer的子类读取控制台的输入控制台输入由System.in完成为了获得一个绑
2021-04-19 19:56:32
99
原创 #4
寻找两个已将排好序的一维数组的中位数方法一:暴力法将两个数组按照顺序放在已经排好序的新建的数组内,然后取出其中的中位数public class StudyOne { public static void main(String[]arg) { int[] a= {4,5,7,9}; int[] b= {1,3,6,11,13}; findMadianSortedArrays(a,b); } public static double findMadianSortedArray.
2021-03-26 18:48:38
87
原创 数组
数组Java数组存储固定大小的同类型元素数组利用索引(内存地址)来记录每个元素在数组中的位置,大多数编程语言中,索引是从0算起。数组是线性表的实现方式之一,数组中的元素在内存中连续存储,且每个元素占用相同的内存。声明、创建、初始化声明:dataType[] arrayRefVar;dataType arrayRefVar[];创建:arrayRefVar=new dataType[arraySize];public class example1{ public static void
2021-03-26 18:00:44
58
原创 web前端
web前端开发相关技术所有浏览器对同一个CSS样式的解析都相同,因此页面在不同浏览器下的显示效果一样。(错误)url是统一资源定位符。实际上就是web地址,俗称“网址”(正确)HTTP是一种详细规定了浏览器和万维网服务器之间互相通信的规则。(正确)HTML基础头部(head)title标签可以作为默认快捷方式或收藏夹的名称可以作为搜索引擎结果中的页面标题meta标签(可添加多个)单标签定义页面元信息(不显示在浏览器窗口中,但对于机器是可读的)设置页面属性,如设置刷新、失效期、缓存、
2021-03-13 21:10:48
493
原创 复杂度分析
算法是指用来操作数据、解决程序问题的一组方法。衡量不同的算法之间的优劣要从算法所占用的时间和空间两个维度去考量。时间维度:执行当前算法所消耗的时间(时间复杂度)空间维度:执行当前算法需要占用的内存空间(空间复杂度)程序员提出通用的方法进行算法的时间复杂度分析:T(n)=O(f(n))n:表示数据规模O(f(n)):表示运行算法所需要执行的指令数,和f(n)成正比。常见的时间复杂度量级进行大O的理解:常数阶O(1)无论代码执行多少行,其他区域不会影响到操作void swap(int
2021-01-25 12:24:21
73
原创 第四章-散列
散列(hash)将元素通过一个函数转换为整数,使得该整数可以尽量唯一地代表这个元素。这个转换函数称为散列函数H,如果元素在转换前为key,那么转换后就是一个整数H(key)key为整数时(1)直接定址法(重要)H(key)=key或者H(key)=a*key+b直接把key作为下标或者线性变换问题:给出N个整数,再给出M个整数,问这M个数中的每个数分别是否在N个数中出现过,其中N,M<=105.空间换时间。设定bool类型数组hashTable[100010],初始化为false(正整
2021-01-24 12:32:48
129
原创 第六章-sort(C++)
如何使用sort排序sort函数的使用必须加上头文件“#include”和“using namespace std;"使用方法:sort(首元素地址,尾元素地址的下一个地址,比较函数)三个参数前两个必须填,比较函数根据需要填写。不写比较函数,默认对前面给出的区间进行递增排序。#include<stdio.h>#include<algorithm>using namespace std;int main(){ int arr[6]={9,4,2,5,6,-1}; /
2021-01-22 11:07:35
58
原创 第四章排序笔记
排序排序笔记内部排序(数据对象只在内存里进行排序)外部排序(数对象过多不能同时放入内存,需要借助外存进行排序)此处只总结内部排序:选择排序:简单选择排序:对一个序列A中的元素A[1]~A[n],令i从1到n枚举,进行n趟操作,每趟从待排序部分[i,n]中选择最小的元素,令其与待排序部分的第一个元素A[i]进行交换,这样元素A[i]就会与当前有序区间[1,i]。n趟操作后,所有元素就会是有序的。算法逻辑明显:共进行n趟操作,每趟操作选出待排序部分[i,n]中最小的元素,令其与A[i]交换。因此
2021-01-22 09:57:57
76
原创 第三章-字符串处理5901
回文串题目描述:读入一串字符,判断是否是“回文串”。回文串是一个正读和反读都一样的字符串。输入格式:一行字符串,长度不超过255输出格式:如果是“回文串”,输出“YES”,否则输出“NO”样例输入:12321样例输出:YES#include<stdio.h>#include<string.h>const int maxn=256;bool judge(char str[]){ int len=strlen(str); for(int i=0;i<
2021-01-16 12:31:17
91
原创 第三章-进制转换
进制转换:P进制转换为Q进制的步骤(1)P进制先转换为十进制数y对于一个十进制数y=d1d2d3…dn,它可以写成这个形式:y=d110(n-1)+d210(n-2)+…+dn如果p进制数x=a1a2a3…an,那么它写成下面这个形式之后使用十进制的加法和乘法,就可以转换为十进制数y:y=a1p(n-1)+a2p(n-2)+…+anint y=0,product=1;while(x!=0){ y=y+(x%10)*product; x=x/10; product=product*p;}
2021-01-16 12:19:14
332
原创 第三章-图形输出B1036
跟奥巴马一起编程输入:在一行中给出正方形边长N(3<=N>=20)和组成正方形边的某种字符C,间隔一个空格。输出:由给定字符C画出的正方形。但是注意到行间距比列边距大,所以为了让结果看上去更像正方形,所输出的行数实际上是列数的50%(四舍五入取整)。样例输入10 a样例输出:aaaaaaaaaaa aa aa aaaaaaaaaaa#include<stdio.h>int main(){ int row,col;
2021-01-15 10:30:50
208
原创 第三章-查找元素
题目描述:输入一个数n(1<=n>=200),然后输入n个数值各不相同的数,在输入一个值x,输出这个值在这个数组中的下标(从0开始,若不再数组中则输出-1)。输入样例:41 2 3 43样例输出:2#include<stdio.h>const int maxn=210;int a[maxn];int main(){ int n; int x; scanf("%d\n",&n); for(int i=0;i<n;i++){ scanf("
2021-01-14 17:34:03
71
原创 第三章-简单模拟B1032
挖掘机技术哪家强题目描述:为了用事实说明挖掘机技术哪家强,PAT组织了一场挖掘机技能大赛。请根据比赛结果统计出技术最强的那个学校。输入格式:在第一行给出不超过10的5次的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)及其比赛成绩(百分制),中间以空格分隔。输出格式:在第一行中给出总得分最高的学校的编号及其总分,中间以空格分隔。题目保证答案唯一,没有并列。输入样例:63 652 801 1002 703 403 0输出
2021-01-14 16:49:27
104
原创 第三章-简单模拟B1001
简单模拟:题目怎么说,你就怎么做题目描述:卡拉兹猜想对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样反复砍下去,最后一定在某一步得到n=1.此处并非要证明卡拉兹猜想,而是对给定的任一不超过1000的正整数n,简单的数一下,需要多少步才能得到n=1?输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。输出格式:输出从n计算到1需要的步数输入样例:3输出样例:5#include<stdio.h>int main()
2021-01-14 11:59:02
88
原创 第二章-黑盒测试
黑盒测试是指:系统后台会准备若干组输入数据,然后让提交的程序去运行这些数据,如果输出的结果与正确答案完全相同(字符串意义上的比较),那么就称通过了这道题的黑盒测试,否则会根据错误类型而返回不同的结果。其中根据黑盒测试是否对每组测试数据都单独测试或是一次性测试所有测试数据,又可以分为单点测试和多点测试。单点测试对单点测试来说,系统会判断每组数据的输出结果是否正确。后台会多次运行代码来测试不同的数据。#include<stdio.h>int main(){ int a,b; scanf(
2021-01-14 11:40:34
334
原创 第二章-补充
cin与coutC++中的输入输出函数,需要添加头文件“#include”和“using namespace std"才能使用。可以直接进行输入/输出。1、cin采用输入运算符”>>"进行输入。#include<iosteam>using namespace std;int main(){ int n; cin>>n; //输入一个整数n return 0;}如果同时读入多个变量也是一样的写法,只需要后面使用>>进行拓展即可。例如下
2021-01-14 10:32:21
103
原创 第二章-结构体
结构体可以将若干不同的数据类型的变量或数组封装在一起,以存储自定义的数据结构,方便储存一些复合数据。结构体定义定义一个结构体的基本格式:struct Name{ //一些基本的数据结构或者自定义的数据类型 };当需要将一些相关的变量放在一起存储时,只要依次写出它们的数据类型和变量名称。例如:需要存储一个学生的学号、性别、姓名和专业,就可以这样定义:struct studentInfo{ //stdentInfo是结构体的名字 int id; char gender; char n
2021-01-13 17:56:14
74
原创 第二章-指针
什么是指针在计算机中,每个变量都会在内存中分配一个空间,每种类型得变量所占得空间不同,(例如int型变量占用4个字节,而long long型变量占用8个字节),计算机中每个字节都会有一个地址,即变量存放的位置,而计算机就是通过地址找到某个变量的。变量的地址一般指它占用的字节中第一个字节的地址。计算机上一个地址指向一个变量,可以通过地址来找到变量。C语言中用“指针”来表示内存地址(或者称指针指向内存地址),如果这个内存地址恰好是某个变量的地址,那么称这个指针指向该变量。在变量前面加上&,就表示
2021-01-13 16:34:53
162
原创 第二章基础知识
第二章2.4 循环结构while语句计算机求解1+2+3+4…+100?#include<stdio.h>int main(){ int n=1; int sum=0; while(n<=100){ sum+=n; n++; } printf("%d",sum); return 0;}while条件判断的真假可以使用的技巧1、如果表达式是“!=0”,则可以省略“!=0”2、如果表达式是“==0”,则可以省略“==0”,并在表达式前面添加非运算符"!
2021-01-12 20:14:28
206
原创 正则表达式
正则表达式是一种字符串的语法规则,是一种可以用于模式匹配和替换的规则,主要用于文本和字符串的处理。一个正则表达式是由普通字符和特殊字符(元字符)组成的文字模式,用以描述在查找文字主体时待匹配的一个或多个字符串。元字符正则表达式由一些具有特殊意义的字符组成的字符串,这些具有特殊意义的字符称为元字符。元字符正则表达式中的写法意义..任何一个字符\d\\d0~9的任何一个数字\D\\D任何一个非数字字符\s\\s空格类字符,’\t’,’\n’,’\
2020-11-08 20:01:58
724
原创 Java异常处理笔记
异常程序运行过程中会出现各种错误,常见的错误包如除数为零、数组下标越界、文件找不到、内存溢出、栈溢出等。通常有两种处理方法:1、计算机系统本身直接检测程序错误,遇到错误时程序终止运行2、程序员设计过程中兼顾错误检测、错误信息显示、出错处理Java提供异常处理机制来处理程序运行中的错误,Java系统中专门设置了一个调用栈,此栈中装有指向异常处理方法的指针异常引起的原因1、程序中存在非法操作,程序员考虑不周导致,称为隐式异常。2、程序中使用throw语句引起的异常,是有意安排的,称为显式异常。
2020-11-05 21:33:40
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人