
算法与数据结构学习
文章平均质量分 89
记录自己的算法学习路程
啸啊啸啊
这个作者很懒,什么都没留下…
展开
-
Java 自身实现 Http 服务(无第三方)
面试时候遇到的笔试题,要求不依赖任何第三方库或框架(只使用 jdk 里面包含的公开可用的类库),tomcat 属于第三方框架所以不要用,com.sun 下的也不要用,开发一个 http 服务Java 开发文档中已经提供完整的方式,英文教程{阅读原文](https://aidanblog.top/2021/09/01/Interview-code-NativeHttpService/)具体流程:使用 ServerSocket 对客户端进行监听接收 http,解析数据提供服务并响应这里做一个算原创 2021-09-05 18:07:42 · 1296 阅读 · 0 评论 -
PAT 甲级-搜索和动规
阅读原文因为当时备考比较匆忙,图和树的题只是粗略写了一下并没有整理,包括搜索中的 BFS 也没整理,搜索和动态规划这两部分的内容较少,便直接整合到一起了,后续就没了,当时参加 PAT 是在大三,那时候总觉得时间用不完,写了几个没什么技术含量的小东西之后就觉得没意思了,当时刷知乎看到陈越姥姥说 PAT 就等于计算机的托福啊,便一头扎进去准备了,中间因为自身原因放下了一段时间,导致后来成绩不理想(当时还收到 58 同城的面试邀请),但功不唐捐感觉还是学到了不少东西DFS1103题目:Integer F原创 2021-08-18 19:39:32 · 132 阅读 · 0 评论 -
PAT 甲级-模板库
阅读原文C++ 中为使用者提供了标准的模板库也叫 STL,其中封装了大部分刷题所要用到的容器,而我在之前写过一篇《C++ STL》,所以这里就是单纯的记录一些类型题的解题思路,并不重复赘述具体的使用和含义话说 C++ 中的容器在易用性和速度上做出的平衡要比其他语言强的不是一星半点,之前看过侯捷老师的手撕 STL 源码,后来转 Java 没能坚持看完,但仍感觉受益匪浅(虽说时间一长忘干净了),不知道什么原因 B站上找不到了vector1039题目:Course List for StudentZ原创 2021-08-18 19:38:15 · 248 阅读 · 0 评论 -
PAT 甲级-数学问题
阅读原文数学可以提高思维能力,而算法最需要的就是思维能力,所以数学和算法题总是绕不开的,PAT 中就有专门的数学类型题但只是将需要大量计算的数学题用算法的方式进行解答,但还是有一部分题做到了很好的结合。举个不恰当的例子:圆的面积就是将其不断分割成可以用来计算的矩形和三角形,按照数学的思路就是用圆周率,而算法就是模拟切割的过程不断计算(当然实际肯定不是这样),不过计算机被创造出来的初衷好像就是做这种事思想解释简单数学一些不需要算法,仅仅使用基础数学知识的问题,一般考察的逻辑数理能力公约公倍数in原创 2021-08-18 19:36:50 · 448 阅读 · 0 评论 -
PAT 甲级-算法初步
阅读原文接上一篇 PAT 甲级-入门模拟 ,自我感觉这部分才是真正的算法入门,对基础的数据结构提供了很好的类型题进行匹配练习包括分类:排序、散列、贪心、二分、双指针、打表、递推排序思想解释排序题主要是获取排序后的结果而不是过程,大部分代码可以使用 sort() 函数进行直接处理,要熟练编写 cmp 排序规则(包括结构体形式的多变量规则)有些题需要获取排名,只需在已经排序好的数组或容器中遍历全部的数据,如果和上一个数据相同,则排名相同,否则排名加 1类型练习1062题目:Talent an原创 2021-08-18 19:32:04 · 474 阅读 · 0 评论 -
PAT 甲级-入门模拟
阅读原文当时准备 PAT 竞赛时候,买了本《算法笔记》,书中将题型进行分类,是我最系统的一次算法学习,对题型判断、解题思路都有了新的认知,本篇文章主要记录当时刷的入门模拟题,算是比较简单的算法题(有些都不能称之为算法),就当是打基础了包括分类:简单模拟、查找元素、图形输出、日期处理、进制转换、字符串处理简单模拟思想解释根据题目的要求去做即可,主要考察代码的编写能力类型练习1042题目:Shuffling MachineShuffling is a procedure used to ra原创 2021-08-18 19:29:53 · 687 阅读 · 0 评论 -
C++ 刷题实用方法总结
准备 PAT 竞赛时自己总结的实用函数,搞过 OJ 的应该都有一套自己总结的算法秘籍(小抄),这种东西主观性比较强,自己搞的才看的懂,发出来做个记录吧阅读原文cmath头文件其针对的参数大多为double,所有进行整型判断的时候需要进行转换:(double)int;方法含义fabs()绝对值floor()、ceil()向下、向上取整pow(r, p)幂值: rpr^prpsqrt()开根round()四舍五入取整log()以e为底的对数原创 2021-08-18 15:19:39 · 513 阅读 · 0 评论 -
C 转 C++ 刷题教程
本文章与其说是 C++ 的 STL 容器使用,其实是在准备算法刷题时总结的一些 API 调用,后来更多的是用 Java,虽说算法不应该和语言挂钩,但不得不承认在刷力扣或是 PAT 算法考试时 C++ 才是我真正的心头好阅读原文实际竞赛或是 PAT 考试时经常会同时用到 C 的简单高效和 C++ 的丰富类库,在总结是也着重记录了 C => C++ 的语法变化和不同应用场景下的选择语法变化输出方法C++ 中提供 cin(>>) 和 cout(<<) 进行弱类型的输入和输出原创 2021-08-18 15:17:33 · 297 阅读 · 0 评论 -
Java实用方法完结版
去年蓝桥杯之后发出了自己整理的Java实用方法,这次又要比赛了,将去年的又整理了一下,另添加了很多内容目录:Java 实用方法输入 输出数组的操作Arrays 类String 类StringBuilderStringBuffer边界处理格式转换快速排序比较器大数的使用Math 类日期类Date 类模板公约公倍数进制转换全排列判断闰年Java 实用方法输入 输出输如:对字符串的获取可以采用 next()和 nextline(),用 hasNext()或 hasNextline()判断是否还有数据.原创 2021-03-26 19:09:34 · 127 阅读 · 0 评论 -
蓝桥_普及题
蓝桥杯普及题用筛选法判断素数字符串的输入输出蛇形矩阵DNAIP判断Tom数分糖果回文数的判断数字游戏分核桃蚂蚁感冒错误票据FJ的字符串分解质因数字符串对比完美的代价报时助手龟兔赛跑预测删除数组中的0元素数组替换Torry的困惑不同单词个数的统计乘法运算五次方数任意年月日蓝桥杯普及题用筛选法判断素数题目:用筛选法求0~N之间的素数输入:N输出:0~N之间的所有素数,用回车进行分割思路:直接遍历N之前的所有数,如果模除非1和它本身外.原创 2020-10-26 19:19:01 · 431 阅读 · 0 评论 -
蓝桥_Java实用总结
序引eclipse的使用Jav实用方法输入输出数组的操作String类型的使用格式之间的转换快速排序大数的使用Math类日期类Date类模板公因公倍数进制转换全排列判断闰年题目总结TreeSet排序序引准备17号的蓝桥杯写的这个文档,目前打算记录三个方面Java实用方法做题的总结各种模板eclipse的使用代码模板:main+Alt+/;syso+Alt+/;快捷键:Ctrl+1快速修复;Ctrl+Shift+O快速导包.原创 2020-10-26 19:18:25 · 824 阅读 · 0 评论 -
十一届蓝桥杯总结Java_B组省赛
文章目录个人情况&&比赛经过建议今天蓝桥杯省赛的比赛结果刚出来,省一中等,做个小总结记录一下,也给有需要的人做个参考个人情况&&比赛经过我是山东赛区JavaB组,今天看了一下获奖名单的PDF包,山东赛区的获奖名单的存储大小比别的省份要大出不少,说明参加人数还是比较多的,但蓝桥杯的获奖名额是按照比例划分,所以参加的人越多获奖的机会越大(玄学逻辑)。今年疫情的原因所有选手都是在本校考的,我的监考老师就是我的指导老师,至于压力什么的我觉得是谁都无所谓,多年的应试经验告诉我他原创 2020-10-26 19:17:34 · 850 阅读 · 0 评论 -
蓝桥杯真题_Java组别B_2020
文章目录指数计算解密跑步训练合并检测分类计数走方格指数计算题目:7 ^ 2020 mod 1921,其中 A mod B 表示 A 除以 B 的余数思路:这应该是很简单的一道题了,但是再写一遍就是觉得大数类考到的可能性还是很大的代码:import java.math.BigInteger;public class 指数计算 { public static void main(String[] args) { BigInteger a=new BigInteger("原创 2020-09-22 19:03:27 · 864 阅读 · 0 评论 -
蓝桥杯真题_Java组别B_2019
以下只有部分题,太简单的就没写,太难的不会╮(╯▽╰)╭文章目录特别数的和数列求值数的分解不同字串迷宫特别数的和题目:输入一个数N,判断N之前的数中是否有“2”“0”“1”“9”,求出所有符合标准的数的和思路:用遍历N之前的每一个数,然后放到check方法中去判断代码:import java.util.Scanner;import java.util.zip.CheckedInputStream;public class 特别数的和 { public static void m原创 2020-09-22 18:51:50 · 383 阅读 · 0 评论 -
图_最短路径_dfs_Java实现
最短深搜图的遍历_dfs城市最短路径_dfs图的遍历_dfs问题:从1开始,对图像进行遍历,点与点之间的连线无向【输入】n m n代表点的个数,m代表边的个数a1 a2 点a1到点a2之间有连线…【输出】a1 a2 a3 a4…思路:采用深度搜索算法,利用二维数组记录连线的关系递归进行遍历设置book数组进行记录走过的点代码:import java.util.Scanner;public class 图的遍历_dfs { static int sum=0;/原创 2020-08-17 16:40:09 · 720 阅读 · 0 评论 -
枚举_炸弹人_Java实现
题目:用#代替墙,用G代表敌人,用.代表空地,炸弹只能放在空地上,所以只要在空地处向4个方向扫描能炸死多少个敌人即可。思路:用二维的字符数组进行地图输入,只需要对上下左右四个方向进行枚举import java.util.Scanner;public class 炸弹人 { public static void main(String[] args) { Scanner input=new Scanner(System.in); int n=input.原创 2020-08-15 17:29:26 · 460 阅读 · 0 评论 -
蓝桥杯真题_Java组别B_2018
编程学习记录这段时间在准备算法比赛,所以进行了较为深度的自学,虽然是入门阶段,但正因为如此,才更有记录的必要,GitHub对我一个四级还没过的学渣来说使用难度有点大,所以暂时在优快云中进行一些记录算法真题...原创 2020-07-27 19:10:39 · 219 阅读 · 0 评论 -
蓝桥杯真题_Java组别B_2017
17年算法真题2017-承重计算2017-承重计算题目:X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。金属材料被严格地堆放成金字塔形。75 87 8 89 2 7 28 1 4 9 18 1 8 8 4 17 9 6 1 4 5 45 6 5 5 6 9 5 65 5 4 7 9 3 5 5 17 5 7 9 7 4 7 3 3 14 6 4 5 5 8 8 3 2 4 31 1 3 3 1 6 6 5 5 4 4 29原创 2020-08-08 17:05:27 · 197 阅读 · 0 评论 -
枚举_火柴棍算法问题_Java实现
参考《啊哈算法》问题:现在有n根火柴棍,拼出A+B=C的等式。注意:加号和等号各自需要两根火柴棍,A不等于B,则A+B=C与B+A=C是为不同的等式,所有火柴棍必须都用上思路:这道题的主要难点就是怎么用数字将所需的火柴棍表示出来,之前了解过桶排序的就好解决了,写一个数字,用内容对应下标,比如0需要6根火柴那么arr[0]={6},茅厕顿开了吧代码:import java.util.Scanner;public class 火柴棍 { public static void main原创 2020-08-14 17:48:24 · 623 阅读 · 0 评论 -
《啊哈算法》_小猫钓鱼(Java实现版)
今天看到《啊哈算法》小猫钓鱼这个题感觉挺有意思的,用Java写了一下(思路一样,写了两种,一个自定义类,另一个是直接导入的队列和栈,建议对队列和栈不熟悉的同学先看看自定义的,这也是Java比之C的一个弊端,现成的东西太多,反而学起来不好理解)题目要求:两人比赛,A,B,每人最开始分得6张手牌,手牌大小为从1到9A先出牌,B后出牌,若出牌在桌面上存在,在出牌人获得两张相同牌中间的所有牌(包括两张相同牌),放入出牌人手中。最后谁手中无牌判为负思路:每人有两种操作,分别是出牌和赢牌。这恰好对应队列的两原创 2020-08-11 16:26:19 · 606 阅读 · 0 评论 -
数组中的重复数_java实现
算法学习贴算法很美(讲师:陈未)位运算位运算_数组中的重复元素算法很美(讲师:陈未)视频地址位运算位运算_数组中的重复元素问题:一列数组中有一个元素重复出现了两次,且不知道他的位置,其他元素均只出现一次,设计算法,在每个数组元素只访问一次的情况下将它找出来思路:用异或进行比对x=x ^ i ^ a[i],i在循环中与数组的个数相同,但i和x均从0开始,也就是两组数的相互对应,而重复的元素出现了三次,最后的x值即为重复元素public class 数组重复数 { public sta原创 2020-08-08 16:22:35 · 166 阅读 · 0 评论