每日总结

每日任务

目录

7月部分

8月部分

9月部分

  • 初步任务+小结
  • 7月2日任务+总结
  • 7月3日任务+总结
  • 7月4日任务+总结
  • 7月5日任务+总结
  • 7月6日任务+总结
  • 7月7日任务+总结
  • 7月8日任务+总结
  • 7月9日任务+总结
  • 7月10日任务+总结
  • 7月11日任务+总结
  • 7月12日任务+总结
  • 7月13日任务+总结
  • 7月14日任务+总结
  • 7月15日任务+总结
  • 7月16日任务+总结
  • 7月17日任务+总结
  • 7月18日任务+总结
  • 7月19日任务+总结
  • 7月20日任务+总结
  • 7月21日任务+总结
  • 7月22日任务+总结
  • 7月23日任务+总结
  • 7月24日任务+总结
  • 7月25日任务+总结
  • 7月26日任务+总结
  • 7月27日任务+总结
  • 7月28日任务+总结
  • 7月29日任务+总结
  • 7月30日任务+总结
  • 7月31日任务+总结

返回7月部分

  • 8月1日任务+总结
  • 8月2日任务+总结
  • 8月3日任务+总结
  • 8月4日任务+总结
  • 8月5日任务+总结
  • 8月6日任务+总结
  • 8月7日任务+总结
  • 8月8日任务+总结
  • 8月9日任务+总结
  • 8月10日任务+总结
  • 8月11日任务+总结
  • 8月12日任务+总结
  • 8月13日任务+总结
  • 8月14日任务+总结
  • 8月15日任务+总结
  • 8月16日任务+总结
  • 8月17日任务+总结
  • 8月18日任务+总结
  • 8月19日任务+总结
  • 8月20日任务+总结
  • 8月21日任务+总结
  • 8月24日任务+总结
  • 8月25日任务+总结
  • 8月26日任务+总结
  • 8月27日任务+总结
  • 8月28日任务+总结
  • 8月30日任务+总结
  • 8月31日任务+总结

返回7月部分

返回8月部分

  • 9月1日任务+总结
  • 9月2日任务+总结
  • 9月3日任务+总结
  • 9月4日任务+总结
  • 9月5日任务+总结
  • 9月6日任务+总结
  • 9月7日任务+总结
  • 9月8,9日任务+总结
  • 9月10日任务+总结

到最底部


初步任务

任务:PTA乙级题目

第一题1001 害死人不偿命的命(3n+1)猜想
第二题1003 我要通过
第三题1004 成绩排名

小结

初步了解java并开始学习java.
任务1:
其他两题大概了解了下。
第二题的思路

  • 如果PAT正确,那么PAAT也正确;如果PAAT正确,那么PAAAT也正确;……以此类推。
  • 如果APATA正确,那么APAATAA也正确;如果APAATAA正确,那么APAAATAAA也正确;……以此类推。
  • 如果AAPATAA正确,那么AAPAATAAAA也正确;……以此类推。

相关文章链接:
PTA1001
PTA1003
PTA1004

返回目录


7月2日任务

  • 任务1:五题PTA乙级
    第一题1005 继续(3n+1)猜想
    第二题1006 换个格式输出整数
    第三题1007 素数对猜想
    第四题1008 数组元素循环右移问题
    第五题1009 说反话
  • 任务2:下载使用git,并创建github账号

7月2日总结

任务1:

  • 在做1005时对题意理解错误将覆盖数与关键数弄反,在判断如何去除覆盖字同时输出
    关键字遇到困难。
  • 1006中没遇到什么困难。
  • 1007中如何判断素数并调用遇到困难。
  • 1008中一开始没想太多,先是调换前后位置再掉换中后位置逻辑混乱。后面在做的过程中忽略了位
    移量大于数组长度的问题。后都已解决只是写法有些繁琐,不会使用特殊标量。
  • 1009中如何将间隔的字符串传入数组遇到困难。

任务2:

git的用法:
  • pwd命令用于显示当前目录。这个仓库位于/c/Users/Administrator。
    $ mkdir learngit
    $ cd learngit
    $ pwd
    /c/Users/Administrator
  • 将目录变为git可管理的目录
    $ git init
    Reinitialized existing Git repository in C:/Users/Administrator/.git/
  • 添加文件
    $ git add readme.txt 可反复多次使用,添加多个文件
    $ git commit -m "wrote a readme file"
  • 克隆本地库
    $ git clone [email protected]:wbbj/gitskills.git 其中wbbj是自己的地址

使用$ git push -u origin master可以将atom中的笔记上传git,在这之间要右击存储atom文件的文件点击 git bush hear

相关文章链接:
PTA1005
PTA1006
PTA1007
PTA1008
PTA1009

返回目录


7月3日任务

  • 任务一:五题PTA乙级
    第一题PTA1011 A+B和C
    第二题PTA1012 数字分类
    第三题PTA1013 数素数
    第四题PTA1014 福尔摩斯的约会
    第五题PTA1015 德才论
  • 任务二:学习部分MarkDown的的语法

7月3日总结

任务1:

  • 做第一题时定义二维数组误用String类型,之后使用int类型发现也有不足最后确定使用long型
  • 做第二题时分类过程中某些逻辑的组合使用遇到困难,还有忽略了无结果时输出的N,在使用double
    并输出精确到小数点后一位的数字出现困难其中用到了"%.1f ",A4/
  • 第三题StringBuffer SB = new StringBuffer();的使用遇到困难,删除StringBuffer结尾
    附加的空格或者换行符遇到困难,还有如何判断从第10个换行,一开始想用二维数组做但发现题目给
    出的输出例子并无此用意。还有一开始使用数组如何存储大量素数遇到一点问题。
  • 第四题 BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    不了解用法后面思路有点混乱逻辑不通printf用法不熟。
  • 第五题一开始只想着数组循环嵌套发现过于复杂看了别人好像方法很多但都很复杂涉及
    好多不会的知识点有用缓冲区的有用大根堆小根堆的都挺复杂的(一个都不会用)。

任务2:

MarkDown的使用:

*加空格或者Tab: 无序列表
两次空格:换行
#:设置标题
在两个点里面包裹片段代码print
三个点加java再在代码底部加三个点:包裹java代码,其中java可替换为其他语言
【超链接描述】(链接url)添加超链接(符号要用英文)
【!图片描述】(图片url),或者直接用html代码添加图片(符号要用英文)
等…

相关链接:
PTA1011
PTA1012
PTA1013

返回目录


7月4日任务

  • 任务1:五题PTA乙级
    第一题1016 部分A+B
    第二题1017 A除以B
    第三题1018 锤子剪刀布
    第四题1019 数字黑洞
    第五题1020 月饼
  • 任务2:写一个JDBC实现增删改查

7月4日总结

任务1:

  • 在做1016时本来是想用for循环往数组中输入要求的A,B,PA,PB但是这样做影响了后续操作。
    首先将A B字符传入数组中以便于比较但存储的方法要选好这里使用了char-----.toCharArray() ,根据相同字符个数利用Math.pow()计算PA,PB。
    还有一种就是直接用long型输入四个数,然后用while循环求余比较两个数然后由此通过Math.pow()得到PA,PB

  • 1017题没什么特别之处因为求得数比较大只要注意变量的类型这里我使用了BigInteger来声明

  • 1018题做的时候在比较字符的时候使用==出现错误,比较字符要用A.equals(B)不能用==,后面输出胜利使用最多手势比较繁琐
    我是将不同手势胜利计数输出最大的那个手势,但这种方法使得同时比较两个人的胜利使用手势次数很烦。

  • 1019题我的思路是设置两个函数分别表示非递增排列和非递减排列
    其中用到了Arrays.sort(a);来将数组中的数据排序,然后将两函数代入公式中利用do while循环输出题目要求的计算过程
    其中还用了System.out.printf("%04d - %04d = %04d\n",FZ(N),FJ(N),HD);来使输出的数据保持xxxx-xxxx=xxxx的形式

  • 1020题计算最大收益完全没头绪,看了别人的思路是计算每种月饼每吨的价格然后最大限度卖出最贵的月饼,将月饼的数据单独分离出来然后计算每种月饼的每吨的价格
    然后取最大的价格的月饼,如果需求量大于月饼库存量,用最大需求量减去最大价格月饼库存量,然后计算收益。
    然后对比剩余需求与剩余最贵的月饼,方法同上,知道需求量用完。

任务2:

IDEA用mysql写的JDBC增删改查
连接数据库:

url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
user = "root";
password = "Wbb100809136";

Class.forName("com.mysql.cj.jdbc.Driver");

增删改查操作:
//增加为例
public static void addData() {
        try {
            pStmt = con.prepareStatement("insert into student (name,bianhao) values(?,?)");
            pStmt.setString(1, "李四");
            pStmt.setString(2, "1234567");
            pStmt.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
输出操作:
public String toString() {
        return "student{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", phone='" + phone + '\'' +'\''+'\''+
                '}';
    }

相关文章链接:
PTA1016
PTA1017
PTA1018
PTA1019
IDEA用mysql写的JDBC增删改查

返回目录


7月5日任务

  • 任务1:五题PTA乙级
    第一题1021 个位数统计
    第二题1022 D进制的A+B
    第三题1023 组个最小数
    第四题1024 科学计数法
    第五题1025 反转链表
  • 任务2:安装deepin系统并学习linux相关基本操作

7月5日总结

任务1:

  • 做1021时一开始的想法是将输入的数据通过用while循环求余讲每一位数存入数组然后逐个判断,此方法有点繁,
    后来改用string类型输入数据,然后用s.charAt(i)-48]在一个循环里计数,最后判断那一位数字不为零输出,输出的格式可以用System.out.printf("%d:%d\n",i,num[i])

  • 做1022时我对进制转换不是很熟,对java的进制转换用法完全懵逼,看了大佬用的这个函数Long.toString(a + b, d)发现可以直接实现

  • 做1023时一开始我的思路是通过给出的数字,判断是否有0没0按顺序输出给出数量的指定数字,有0就将后面一个数量不为0的数和其调换位置但好像逻辑上有些问题,做完后也不对,后来换了个思路,先根据输入的数判断并输出一个至少有一个的数字,然后减少一个此数字的数量用于后面输出,输出完第一个数字有0先输出0 ,没0跳过按顺序输出其他数字。

最后两题没搞懂跳过了。

任务2:
deepin的的安装直接到官网有详细教程,需要准备u盘一个。
安装的时候要注意系统bios的设置中UEFI和legacy的设置,我是设置位UEFI才安装成功,原理上时安装是需要设置为legacy,而且我安装的时候也弹出了当前模式需要改变,我是装完系统之后才设置位legacy,可能是我电脑有问题吧。

linux基本操作指令:
  • [Tab]按键—具有『命令补全』不『档案补齐』的功能
  • [Ctrl]-c按键—让当前的程序『停掉』
  • [Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit
  • 变换目录:
    cd /home 进入 ‘/ home’ 目录’
    cd … 返回上一级目录
    cd …/… 返回上两级目录
    cd 进入个人的主目录
    cd ~user1 进入个人的主目录
    cd - 返回上次所在的目录
  • 显示当前所在目录:pwd
  • 建立新目录:
    mkdir dir1 创建一个叫做 ‘dir1’ 的目录’
    mkdir dir1 dir2 同时创建两个目录
    mkdir -p /tmp/dir1/dir2 创建一个目录树
  • 删除『空』的目录:rmdir
  • 档案与目录的显示:
    ls 查看目录中的文件
    ls -F 查看目录中的文件
    ls -l 显示文件和目录的详细资料
    ls -a 显示隐藏文件
    ls [0-9] 显示包含数字的文件名和目录名
  • 复制档案或目录:cp
  • 移除档案或目录:rm
  • 移动档案与目录,或更名:mv
  • 取得路径的文件名与目录名:basename,dirname
  • 由第一行开始显示档案内容:cat
  • 从最后一行开始显示:tac(可以看出 tac 是 cat 的倒着写)
  • 18、复制档案或目录:cp
  • 移除档案或目录:rm
  • 移动档案与目录,或更名:mv
  • 取得路径的文件名与目录名:basename,dirname
  • 由第一行开始显示档案内容:cat
  • 从最后一行开始显示:tac(可以看出 tac 是 cat 的倒着写)
  • 打开目录中的文件vim
    以上命令我就记住了几个常用的。

相关链接:
PTA1021
PTA1022
PTA1023
deepin官网

返回目录


7月6日任务

* 任务1:学习菜鸟教程上的java教程 * 任务2:学习Http协议

7月6日总结

任务1:
学习方法态度不对,没学到什么
任务2:

HTTP协议

Hyper Text Transfer Protocol(超文本传输协议)的缩写`
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

HTTP 协议的 8 种请求类型介绍:
  • GET 请求指定的页面信息,并返回实体主体。
  • HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
  • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT 从客户端向服务器传送的数据取代指定的文档的内容。
  • DELETE 请求服务器删除指定的页面。
  • CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
  • OPTIONS 允许客户端查看服务器的性能。
  • TRACE 回显服务器收到的请求,主要用于测试或诊断。
  • PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。
常见的HTTP状态码:
  • 200- 请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 404- 请求的资源(网页等)不存在
  • 500 - 内部服务器错误

相关文章链接:
HTTP协议

返回目录


7月7日任务

  • 任务1:了解ArrayList和LinkedList的区别

  • 任务2:String,StringBuilder和StringBuffer的区别

7月7日总结

ArrayList和LinkedList的区别

  • ArrayList和LinkedList是迭代器(Iterator)对象的connection接口下的List接口的实现类。

  • ArrayLis和LinkedList底层数据结构不同
    ArrayList底层数据结构是动态数组,所以它可以使用get()方法访问列表中的任意元素。
    而Linkedlist底层数据结构是双向列表,get方法是从一端检查到另一端。所以ArrayList访问速度比LinkedList访问某个元素更快

ArrayList起始容量是10,当数组需要增长时每次容量大概会增长50%,最终会有很大空间被浪费掉。

当我们需要对一个列表进行大量的插入和删除操作时,当一个元素被加到ArrayList的最开端时,所有元素都会后移,而且ArrayList对于添加操作需要在数组快要装满的时候将所有的数据重新装入一个新的数组,数据移动和复制的开销很大,而LinkedList只是简单的为这个元素分配一个记录,开销是固定的。

因此ArrayList对于随机访问元素比LinkedList有优势,但对于田家河删除操作LinkedList更有优势。

String,StringBuilder和StringBuffer的区别

  • String是一个类,是一个应用数据类型。String里面几乎所有的属性都是final,由于它的不可变性导致一系列对字符串进行的拼接,剪裁动作时产生大量无用的中间对象。

  • StringBuffer是为了解决String拼接产生多余对象的问题而提供的一个类,StringBuffer采用了synchronized关键字保证了线程的安全,但开销也大。

  • StringBuilder和StringBuffer功能一样但减少了开销。在单线程下StringBuilder效率更快因为它不需要加锁,所以安全性低。

  • StringBuffer一般在多线程的环境下使用 StringBuilder一般在单线程下使用。
    String一般在操作少量数据时使用

  • String的操作会生成一个新的字符串而不是在原有的字符串上进行修改,而StringBuffer和StringBuilder类的对象能被多次的修改并且不产生新的未使用对象。

文章链接:
ArrayList和LinkedList
String,StringBuilder和StringBuffer

返回目录


7月8日任务

  • 任务1:了解单链表和双链表及他们的区别

  • 任务2:使用单双链表底层实现增删该查

  • 任务3:创建数组底层实现增删该查

7月8日总结

单链表
  • 结构:
    head|next->node1|next->…->noden|next->null
  • 首先创建单链表要先声明好节点的数据参数和指向下一个数据节点的参数,
    然后初始化头节点。
  • 单链表在末尾添加数据时需要从头节点开始遍历知道节点指向null,然后将最后一个节点指向要添加的数据然后让要添加的数据的next节点指向null
    head|next->node1|next->…->noden|next->        null;
    ->new|next->
  • 删除操作需要遍历到要删除的节点的前一个节点然后让这个节点指向下下个节点的数据即可
    head|next->node1|next-  node2|next->   node3|next->…->noden|next->null;
    ^ – - ->   ^
  • 插入操作需要遍历到要插入的节点的位置然后让要插入的数据指向下一个节点,然后让要前面的节点指向要插入的节点。
    head|next->node1|next- node2|next->           node3|next->…->noden|next->null;
    ->new|next->
  • 替换操作是删除和插入的结合
双向链表
  • 结构:
    null<-previous|head|next->previous|node|next->. . . . . . . ->previous|noden|next->null
    ^<- - - -| ^<-- - --|
  • 与单链表相同都要先定义头结点,但它比单链表要多定义一个previous前驱指向前一个数据
  • 双向链表在添加替换删除时不仅需要将next指向后一个数据还需要要将前驱指向前一个数据。
基于数组底层实现增删该查
  • 先声明数组变量int[] array和数组中元素数量的变量size
  • 然后初始化数组长度与元素数量为0
  • 在插入操作中要判断元素是否占满所有容量没占满就插入指定位置并将后面所有数据后移,如果满了就用System.arraycopy()将次数组放入一个新数组,或者先对数组进行扩容原理是相同的都是产生一个新数组,然后让原数组指向新数组。
  • 删除操作要先找到指定位置然后将后面的数据全部前移
  • 查看和修改操作可以直接根据位置获取数据直接修改或查看

文章链接:
单链表与双向链表实现增删改查
基于数组实现增删改查

返回目录


7月9日任务

  • 任务1:两题PTA乙级
    第一题1026 程序运行时间
    第二题1027 打印沙漏

  • 任务2:有N个程序猿(编号1~n)围成一圈顺序循环报数,
    从第一个猿开始报数(从1到4报数,猿都是顺序排列成一圈的),凡报到4的猿退出圈子,以下一个为1继续报数,问最后留下的是原来第几号的那位。
    题目的意思大致是这样,比如最开始有五个人编号为1 2 3 4 5
    第一轮去掉4
    1 2 3 5
    第二轮起点是5,去掉3
    1 2 5
    第三轮起点是5,去掉5
    1 2
    第四轮起点是1,去掉2
    1

  • 任务3 跳台阶 现在有长度为n的台阶,你每次只能跳一阶或者二阶 求跳到n阶一共有多少种跳法。

7月9日总结

任务1:

  • 做1026的时候对四舍五入不知道怎么解决,看了别人的解答是用打点差加50解决四舍五入。

  • 做1027时我的思路是先判断给的数是偶数还是奇数,然后根据偶数的一半或奇数减一的一半得出第一行的字符数,用for循环输出空格和给出的符号但是还是有一些逻辑问题,后来转换了下思路先得出一个沙漏最多可装入的字符数的规律,然后根据此规律得出第一行最大符号数量,然后用循环先输出空格在输出符号。

任务2:
今天的主要任务就是写第三题的约瑟夫环,
一开始想着这种比较多的删除操作用链表最合适因为昨天写了单双链表,就写了个简单的单链表,但是在要索引的下一个位置需要从头开始遍历遇到困难,而且直接从底层实现单链表代码比较多,所以后面改用LinkedList类来写,省去了很多代码。
首先添加就使用循环用link.add()添加,
然后找到要删的数的位置,其中索引位置用i=(i+3)%link.size();其中i的初始值为0,i+3是因为报数到四的退出,link.remove(i)删除的的数据对应第四个,删除后i自动移动了一位所以一直保持i+3就可以了,最后用.peek()方法得到最后剩余的一个数据。
具体代码:

package Li;

import java.util.LinkedList;

public class Li {
    public static void tC(int num){
        LinkedList<Integer> link=new LinkedList<>();
        for (int i = 1; i <=num; i++)link.add(i);
        int i=0;
        while (num>1){
            i=(i+3)%link.size();
            link.remove(i);
            num--;
            for(int m=0;m<link.size();m++){
                System.out.print(link.get(m)+" ");
            }
            System.out.println();
        }
        System.out.println("最终剩下:"+link.peek());
    }
}

任务3:
第四题被如何计算上台阶方法数量给难住了,长时间没接触数学数学逻辑不太行,看了斐波那契数列的递归算法也没发现其中的相似之处,最后被人指点才找出规律,
用递归调用,计算方法与斐波那契相同。前一个台阶的上台阶方法等于前一个台阶上去方法加上上个台阶的上去方法。

文章链接:
任务1:
PTA1026
PTA1027

返回目录


7月10日任务

  • 任务1:壁纸爬虫
    爬取zol网站的壁纸

7月10日总结

因为刚接触爬虫所以一脸懵逼,于是到处找资料于是就找到一个非常简单容易理解的帖子,
从中了解到,爬取壁纸时可以看到其url很特别,于是就从url分析这张壁纸,然后得出url中涉及壁纸的数字,然后从这串数字下手。然后通过线程循环获取url并解析下载。

文章链接:

java爬虫爬取zol网站壁纸

返回目录


7月11日任务

  • 任务1:数据爬虫
    爬取美团一个页面的店铺信息并存到mysql数据库的表中。

7月11日总结

昨天初步了解爬虫之后还有很多不明白的地方从这次任务我了解到了如何通过url解析json数据,并从解析后的数据提取需要的部分存入数据库中。
Json的结构有:
[]JsonArray数组类型
{}JsonObject对象类型

文章链接:

爬虫爬取美团店铺信息

返回目录


7月12日任务

  • 任务1:五题PTA乙级
    第一题1028:人口普查
    第二题1029:旧键盘
    第三题1030:完美数列
    第四题1031:查验身份证
    第五题1032:挖掘机技术那家强

  • 任务2:爬虫
    解析指定json文件。
    要求:通过文件流读取,解析出影院及优惠券,并存入数据库中。
    需要建两张表:
    电影院,主键 Id
    优惠券,主键 优惠券Id,外键电影院Id

7月12日总结

任务1:

  • 第一题:
    做1028时一开始的思路不好只想着吧年月日和姓名全分离放在一个数组里,这样比较起来太过复杂,容易出错,
    后来使用了Date类将整个日期提取出来比较,其中用到了SimpleDateFormat类用来对日期字符串进行解析和格式化输出,
    还有用parse()解析字符串的文本,生成 Date,此方法试图解析文本。如果解析成功,并返回解析得到的日期。

  • 第二题:
    1029没什么难度就是注意处理重复字符

  • 第三题:
    这题我的想法是用sort排序将输入的数字从大到小排序,然后一个一个依次比较。

  • 第四题:
    这题的加权求和不知道是什么于是就去查了下:就是对数据在整体评估中占的重要作用设定比例,所有数的比例加起来应为1,然后将各数分别乘以各自的加权比例再相加。首先得到输入的身份证号然后判断其是否合理不合理则放到另一个数组里。最后输出不合理数组。判断过程调用另一个判断方法。具体加权判断我还不是太懂就看了别人的算法。

  • 第五题:
    我的思路是将数据存放到一个数组中;用一个循环每次存入数据将数据中的id与score分离,并比较id相同的id使其对应的score++,然后比较对应的id与score

任务2:

  • 首先在本地找好要解析的文件
    json1.png

  • 然后用文件流读取文件

BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("/myFile/json.json"), StandardCharsets.UTF_8));
       String s=null;
       String us="";
       while ((s=br.readLine())!=null){
           us=new String(s.getBytes("UTF-8"),"UTF-8");
       }
  • 再将数据解析出来
    其中在解析之前先观察要解析的代码,现将前面的数据输出然后放到在线json视图查看器中
    格式化后的视图可以看出这个json的结构对象包裹对象在包裹数组在包裹对象然后数组对象

json{
data{
searchResult[
0{数据
deals[
0{数据

解析过程中发现一个错误,id等数据不是string类型没仔细看看不出来

id后面的值是没加双引号的所以提取数据的部分使用了 getLong("id")+""; 这种形式

数据库建表的时候外键问题不能插入数据,不知道怎么解决所以就删了外键

相关文章链接:
PTA1028
PTA1029
PTA1030
PTA1031
PTA1032
爬虫,解析json文件

返回目录


7月13日任务

  • 任务1 PTA乙级
    题目:旧键盘打字
  • 任务2:哈希表的结构和原理,插入和遍历

7月13日总结

任务1:
我的思路是一开始刚看到这题时那个代表上档键的我以为时前四个字符都是于是就多判断了一些,后来看了别人的理解才知道就只有+号,然后只要先根据是否有+号删去所有大写字母然后进行判断就行了,其中因为要输出下划线,所以修改字符串时用StringBuilder或StringBuffer.

任务2:
HashMap的概念:
HashMap时Mao的常用实现类,每个元素以key->value键值对的方式保存
哈希表的原理是通过构建一个映射将关键字映射到一个唯一的存储位置。
其中映射的过程是由相关可逆计算得到的。
哈希表的结构时散列表 前一部分由数组组成,数组中每个元素对应一条链表,对象通过计算哈希值得到地址索引到数组中。
HashMap的插入操作
HashMap hM=new HashMap();
hM.put("name","Jam");
hM.put("age","18");

一开始只写了一种遍历现在将四种遍历都放上去了

相关文章链接:
PTA1033
初步了解HashMap

返回目录


7月14日任务

  • 任务1:五题PTA乙级
    第一题1034 有理数四则运算
    第二题1035 插入与归并
    第三题1036 跟奥巴马一起编程
    第四题1037 在霍格沃茨找零钱
    第五条1038 统计同成绩学生
  • 任务2:初步学习servlet配置tomcat

7月14日总结

任务1:

  • 第一题刚做这题的时候没仔细看要k a/b的形式只是简单的做了个分数的四则运算,我用的方法过于简单以至于无法达到题目要求于是我就找了大佬的解法研究了下,他用BufferReader,PrintWriter输入输出,直接先得到a1,b1,a2,b2,使用辗转相除法gcd得到最大公约数然后对分数进行化简,计算过程比较简单就直接写在输出里面然后调用分数构造化简即可。
  • 第二题这题一开始没有任何思路,在网上查了插入排序于归并排序的具体原理,只搞懂部分插入排序,归并排序没弄懂,只勉强做出插入排序。
  • 第三题这题没什么难点就用两层循环,判断输出一个边长小2的正方形空格就行了,其中要注意的是字符一定不要用String,不然列间会自带空格
  • 第四题做这题的时候刚开始的思路就是直接分离出三个数先逐个判断情况然后再逐个比较大小,写起来代码臃肿容易出错,看了别人的思路先把判断正负的方法另外写出来用boolean来判断,然后调用这个方法在进行判断那边为减数。
  • 第五题用循环判断计数
    任务2:
    配置tomcat的时候遇到很多问题,比如文件位置,权限,配置变量,然后就是给idea配置tomcat,其中就应为权限问题搞了半天。
    servlet还有一堆问题没解决

相关链接:
PTA1034
PTA1035
PTA1036
PTA1037
PTA1038
PTA1038

返回目录


7月15日任务

  • 任务1:PTA乙级
    第一题1039到底买不买
    第二题1040有几个PAT
    第三题1041考试座位号
  • 任务2:继续学习servlet

7月15日总结

任务1:

  • 第一题我的思路是先将两个字符串读取到两个数组里面,然后将第一个转化为一个字符串,如果直接放可能会多出很多空格,然后逐个判断第一个字符串是否包含第二个字符串的一个字符串,如果包含就将第一个出现的字符串替换掉,得出包含的数量。
  • 第二题我的思路是先得出T的总个数,然后判断遇到P的个数,之后每遇到一次T,之前T的次数就减少一个,然后遇到A就得到当前的总PAT个数
  • 第三题我的思路是将输入的数据放到一个二维数组中,然后比较最后的数字就行了
    任务2:
    学习了servlet的原理
    了解了servlet的生命周期
    实现一个简单的servlet
  • 先创建servlet接口实现类
  • 然后在web.xml文件中配置和映射这个servlet
  • 先定义一个成员变量方便service方法调用init中的servletContext对象
  • 获取请求参数:username,password
  • 获取当前web应用的初始化参数username,password,其中使用了servletContext对象
  • 然后进行比对打定响应字符串

相关链接:
PTA1039
PTA1040
PTA1041
Servlet

返回目录


7月16日任务

  • 任务1:继续之前的servlet
  • 任务2:了解了下MVC
  • 任务3:学习cookie
  • 任务4: 学习session

7月16日总结

任务1:完善了之前写的servlet,增加了mysql数据库操作
了解了如何获取请求并与数据库进行比对。
任务2:了解了MVC的概念和构成
任务3:了解了如何发送Cookie和获取Cookie
Cookie是有name,value组成
了解了会话Cookie和持久Cookie,如果不设置过期时间只要关闭浏览器Cookie就会消失.
任务4:

  • 了解了HttpSession的概念,SessionID
  • HttpSession的生命周期:创建HttpSession对象,销毁HttpSession对象
  • HttpSession的相关API:
    获取Session对象:request.getSession(),request.getSession(boolean create)
    属性相关:setAttribute,getAttribute,removeAttribute
    使HttpSession失效的invalidate()方法
    设置最大时效的setMaxInactiveInterval
  • URL重写:
    允许不支持Cookie的浏览器也可以写WEB服务器保持连续的会话
    是一种将会话标识号以参数的形式附加在超链接的URL的地址后面的技术

相关链接:
Servlet
Cookie
Session

返回目录


7月17日任务

任务1:学习过滤器Filter
任务2:学习监听器Listener
任务3:学习文件的上传和下载

7月17日总结

任务1:
了解了Filter的概念,创建Filter的方法,和Filter的相关API
了解了如何创建HttpFilter,还有Filter的一些简单的应用.
任务2:
了解了监听器的概念,监听器的种类和区别,以及监听器中的某些方法
了解了某些对象的创建和销毁时机.
任务3:
了解了文件上传的基本要求
初步了解了使用commons-fileupload的文件上传操作.
因为form内的按钮全都执行action的问题搞了好久,只是通过把按钮放在form外面简单的解决了下.

相关链接:
Filter
Listener
文件的上传和下载

返回目录


7月18日任务

任务1:继续学习文件上传和下载
任务2:写一个图书管理系统
实现登录验证,验证是否登录,图书的增删改差

7月18日总结

任务1:
了解了文件下载的基本步骤.
任务2:对任务的大致流程进行了规划
写了小部分代码对之前的学习进行了巩固加深
每日总结_第1张图片

相关链接:
文件的上传和下载

返回目录


7月19日任务

任务1:PTA乙级:
第一题1042字符统计
第二题1043输出PATest
第三题1044火星数字
第四题1045快速排序
第五题划拳
任务2:继续昨天的图书管理系统任务

7月19日总结

任务1:

  • 第一题我的思路是用tolowercase读取字符串的小写,获取其中的一个字符进行判断是否在’a’到’z’之内,写的时候字符串转数字遇到问题,后来查阅资料很快解决,查阅资料过程中看到有用字符当数组下标的做法,我用的idea似乎不可行,所以没有采用.
  • 第二题我一开始想的过于复杂导致越写越乱,后来发现只要一个个判断并输出就行了
  • 第三题,这题搞了半天只有大致思路不会写,将火星文低高位分别放入数组,先判断是火星文还是地球文,如果是地球文低位数字求余13,高位除以13得到火星文的索引,如果是火星文高位索引乘13加上低位索引得到地球文
  • 第四题我的思路是将这串数字放入数组,然后给每一个数的前后进行sort排序,如果这个数比前面最大的数字大比后面最小数字小就得出主元素,实际操作发现此方法不可行,然后参考了其他人的写法,直接进行sort排序然后与原数组比较,如果同一个位置数字没变且比前面数字都大比后面数字都小即可得出结果
  • 第五题我的思路是将所有的数放入一个二维数组中,然后进行比较,这题难度不大,要注意判断的时候别忽略了同赢的情况

任务2:
在写登录操作的时候建的lib文件不见了导致数据库驱动一直加载不出来另外导入也不行,然后用之前建的项目重新搞了下,终于完成登录操作,登录操作用了servlet获取登录信息,然后与数据库中的信息进行比较,登录成功跳转主页,失败则重新登录。

相关链接:
PTA1042
PTA1043
PTA1044
PTA1045
PTA1046

返回目录


7月20日任务

任务:安装并配置maven环境

7月20日总结

任务1:
今天学习到了如何安装maven,并在idea中配置maven工程
并配置了tomcat
了解到了maven的目录结构
还有在maven中通过配置pom.xml来导入各种jar包
在web.xml中配置Servlet的映射

相关链接:
maven
maven详细内容

返回目录


7月21日任务

任务1:PTA乙级
第一题:1047编程团体赛
第二题:1048数字加密
第三题:1049数列的片段和
第四题:1050螺旋矩阵
第五题:1051复数乘法

任务2:继续学习servlet,js,ajax,jQuery.

7月21日总结

任务1:

  • 第一题刚开始做这题时犯了个错误,用String接收数据会以空格为节点接收数据,我是想先用-分割获得队伍编号,然后用空格分割获得分数,这就要使用BufferReader了,但这题还是有更简洁的写法,直接用string获取编号,再用int获取空格后的下一个数就是分数就可以得出结果了。
  • 第二题先用bufferreader获取这一行字符串,然后用空格划分为A和B,然后存入数组,通过对A的每一位判断是偶数还是奇数
    在进行详细判断,这里我用StringBuilder存储每次获得的数或者是JQK,最后反转输出。
  • 第三题这题一开始不知道怎么计算,看了别人的帖子才知道用数学方法计算,但是不知道为什么用题目给的例子中间的每一步获得的数字都没问题最后却加出来个9.00,这问题困扰了我很久,可能是因为我的写法不能用bufferreader把最后还是改用Scanner然后就可以了
  • 第四题关于这个螺旋插入我没有任何思路,最开始的想法就是用四个循环来解决,后来看了别人的思路还是不太会,这是根据别人写的得到的螺旋插入的写法。
    在写获取m,n的过程中忽略的m>n的要求浪费了很多时间。我写的判断可能还是有点低级了,看别人说只要判断从sqrt(N)开始往前第一个因数就行了。
  • 这题要注意的不是正负,用printf就可以输出正确形式,要注意的是两数绝对值小于0.01的时候

任务2:
今天学习了使用ajax发送请求与servlet交互实现登录操作
导入jQuery包时一直无法导入,然后找了官网最新版重新导入就可以了
一开始使用原生js写但是post方法老是自动转为get,而且写起来很繁,然后就换了jquery,成功将用户名和密码发送到servlet那边.
在传递数据时一直只有用户名过去,最后找到一个比较简单的解决办法.

相关链接:
PTA1047
PTA1048
PTA1049
PTA1050
PTA1051

返回目录


7月22日任务

任务1:PTA乙级
第一题:1052卖个萌
第二题:1053住房空置率
第三题:1054求平均值
第四题:1055集体照
第五题:1056组合数的和

任务2:继续学习servlet,js,ajax,jQuery,编写登录,提交文章的系统.将数据库方法封装.

7月22日总结

任务1:

  • 第一题我的思路是:首先将符号根据两个[]和空格分割到数组中去然后根据后面给的数依次判断五个位置是否不符合范围要求也就是不存在那个符号,然后根据位置输出符号就行.
    在实际写的时候不知道为什么会存入一堆空元素,输出结果一直不对,单步调试的时候才发现是空元素的影响,然后就写了个方法来删除空元素.
    判断的地方写的可能有点臃肿,不知道怎么快速判断所以就一个个判断了
  • 第二题这题并不是很复杂,我的思路是只要获取前三个数然后逐行获取下面的几行数,逐行比较计数就行了,其中我看了别人的解答中,分割的时候用了trim(),我试了之后发现他把0.5拆成了3部分这就不对了,不知道他们是怎么用的.
  • 第三题这题一开始没什么思路不知道如何判断是否为合法数字,后来看了别人的思路,用抛出异常的方式判断是否能转换为double型来判断是否合法,其中还飞判断是否后面位数多余两个,这里使用了总长度减去小数点所在位置来判断小数点后的位数来判断是否合法.题目最后的如果 K 为 1,则输出 The average of 1 number is Y没看出什么特别用意,有想法的可以提醒我下.
  • 第四题这题想了好久没什么思路,唯一的想法就是先对身高进行排序然后先处理最矮的,这里我采用了别人的代码,但还不是很懂,还有待研究学习.
  • 第五题这题很简单只要获取数字,然后将每一位组合为个位十位相互组合,然后减去本身的组合即可

任务2:
在项目中对数据库进行了封装,在网上查阅资料ajax请求本身不支持重定向,所以目前在写的登录就让ajax根据返回的请求进行一系列动作. 其中实现了Filter的拦截和Cookie和session的登录验证.

相关链接:
PTA1052
PTA1053
PTA1054
PTA1055
PTA1056
github相关内容
[封装jdbc](https://blog.csdn.net/qq_30039097/article/details/97017578

返回目录


7月23日任务

任务1:PTA乙级
第一题1057 数零壹
第二题1058 选择题
第三题1059 c语言竞赛
第四题1060 爱丁顿数
第五题1061 判断题

任务2:完成之前写的登录的操作,并写好笔记

7月23日总结

任务1:

  • 第一题一开始想要根据空格和括号分割得到剩余的字母,但是后来想想给定的数据并不是只有括号和空格还可能给别的,所以就直接分割不管其他符号,只要加一个是否为字母的判断就行了,其中获取的数据可以全部转换为小写.在转换二进制的时候我使用的是对2求余得到的方式获取0或1.在别人写的方法里发现可以直接转换为二进制,用Integer.toBinaryString(sum).
  • 第二题这题乍一看要判断好多东西,然后想了好久,去参考了下大佬的想法,直接将正确答案用substring获取正确答案数量与具体答案,然后在后面进行对比
  • 第三题我的思路是逐一判断在所有排名ID中是包含要查询ID,然后在包含的ID中判断其他,对已测试过ID的判断,最终选用while判断,如果相同直接获取一个与超出while判断中的值不同的值,不相同就一直执行while直到结束,并获得一个超出while判断的值
  • 第四题这题我的想法是先给这串数字用sort排序,排序后的某个位置的数字减一(大于的公里数),天数就是那个位置及其往后的数字的数量
  • 第五题这题没有前面那个多选题复杂,只要获取学生的答案与正确答案进行比较即可

相关链接:
PTA1057
PTA1058
PTA1059
PTA1060
PTA1061
jQuery写的ajax与servlet和数据库交互实现登录

返回目录


7月24日任务

任务1:PTA乙级
第一题1062最简分数
第二题1063计算谱半径
第三题1064朋友数
第四题1065单身狗
第五题1066图像过滤

任务2:配置腾讯云

7月24日总结

任务一:

  • 第一题我的想法是得到分子分母,然后根据题目要求是要从小到大,那就先让要比较的两个分数先从小到大排列,然后在与num/k通分的情况下让num/k在两分数之间变化,
    因为题目要求的是结果以分母为k,所以就直接变化num就行了从,num1开始增加用while循环进行判断,当num与k的最大公约数为1的时候且在指定范围内则满足要求直接输出,
    这里部分代码我参考了大佬的,但是不是很懂printf("%s%d/%d", flag == true ? " " : "", num, k);其中的flag是个什么用法所以就没有引用还是以最古老的方式输出.

  • 第二题这题很简单只需要每次将获取的实部虚部按要求求平方和的开方,然后将结果放在数组中用Arrays.sort()排序即可,最后用printf输出保留两位小数点的形式.

  • 第三题这题乍一看很简单但还是写了挺久,这题一开始我的想法是将存好的数字依次再分割存入新数组中遍历求和然后再放入新数组,再对新数组用sort排序,然后找出相同数字并删除,
    删除的方法想了好多,都挺烦的,然后就找了大佬的写法,发现他们用了TreeSet集合,目前是第一次接触TreeSet,初步了解里面的元素是有序且不重复的,所以这个集合很适合这题,最后用foreach遍历之后还要获取最后一个元素单独输出.

  • 第四题这题我的思路是将夫妻放入二维数组,一开始想过用hashmap但是对hashmap还不熟不知道如何应用在这种题所以就用了二维数组,
    如果有大佬有更好思路写法可以发出来交流下,
    我用二维数组判断的时候先判断是否含有派对名单中人没有则将名单中id存入单身狗,存在则判断是0位置的还是1位置的,如果是0则判断1位置的人是否在派对中,反之亦然,如果不存在就存入单身狗,
    其中我在存入的id后还存了个空格,方便后面分割到数组排序,这里我用的stringBuilder创建的单身狗,其实也可以直接用数组.

  • 第五题这题我一开始完全没没看懂什么意思,后来结合别人的思路才明白,对于替换和补零,我看到一个很好的写法
    目前没发现其他更好的写法 String str= new DecimalFormat("000").format(i);用这个来使3变为003.但是他里面用了好多.length明显多此一举了,已经给了A,B就用A,B就行了.

相关链接:
PTA1062
PTA1063
PTA1064
PTA1065
PTA1066

返回目录


7月25日任务

任务1:PTA乙级
第一题1067 试密码
第二题1068 万绿丛中一点红
第三题1069 微博转发抽奖
第四题1070 结绳
第五题1071 小赌怡情

任务2:配置腾讯云

任务3:初步确认想做的项目为垃圾分类小程序

7月25日总结

任务一:

  • 第一题我的思路是用bufferreader读取第一行用空格分割得到正确密码和尝试次数n,然后用while循环判断只要次数在n次以内,判断读取的密码是否正确不正确则计数,正确则跳出循环,否则直到读到#跳出循环,如果计数等于n则锁住.
  • 第二题这题完全不会题目也不是很懂这里附上大佬写的代码,还没搞懂先记下来之后做的差不多了在回头看这些不会的
  • 第三题这题我的思路是将参赛人员放入数组,从S-1开始遍历每次加3,获奖用户放入stringBuilder中,其中如果stringBuilder中包含此用户i+1,这里使用不严谨如果用户多起来,可能会有更多的重复用户,这里我没有写上去,我的想法是用递归顺延用户,我不清楚这题目的具体要求是顺延后是否从顺延后的用户继续计算后面的获奖用户还是从后一个的后一个计算,似乎有很多矛盾所以就先简单判断了.
  • 第四题这题我我的思路是第一次对折后前两个绳子除以二,然后接后面的两个绳子再除以2,但是好像最后还是算不出题目的要求于是我就去看了其他人的解答才发现这题侧重点在于要先连最短的绳子,我看到有人用到贪心算法,由于还不怎么了解贪心就没去用,就用了最简单的写法
  • 第五题这题我认为挺简单的,我的想法就是先判断筹码是否为零,不为零在判断筹码是否够,够了再判断输赢,没什么特别之处.

任务2:本来已经配置的差不多一半了,结果因为失误配置了错误的变量导致故障,重新装了下腾讯云

任务3:初步确立愿景和大体流程

相关链接:
PTA1067
PTA1068
PTA1069
PTA1070
PTA1071
初步使用腾讯云
小程序初步计划

返回目录


7月26日任务

任务1:PTA乙级
第一题1072 开学寄语
第二题1073 多选题常见计分法
第三题1074 宇宙无敌加法器
第四题1075 链表元素分类
第五题1076 Wifi密码

任务2:继续之前的任务

7月26日总结

任务一:

  • 第一题我的想法是将要查的编号放到一个字符串中用contains判断是否含有学生学生带的物品编号,也可以反过来判断,但我认为这样后面输出会好判断些,如果有则记录此事的编号索引,并记录查缴物品数,同时新声明一个计数用来判断是否有被查缴的物品,同时有利于后面记录学生数并输出.
  • 第二题这题之前有个简化版的,现在多了好几个条件难度怎加了很多,于是我就找来之前写的突然发现好多问题,找出选项不太好找,这题就先放下,查阅资料发有大佬用hashmap做的,看不太懂,没找到其他用java写的
  • 第三题大致思路就是先将两个数中短的数补零使两个数一样长,然后逐位判断,进位单独判断,这里进制数都和十进制的规则一样所以不难判断,部分代码参考的别人,我看了其他人的写法里面有个for循环不是很懂,但还是放上去了,有懂得可以讲下
  • 第四题这题想了好久还是没思路,也没看到有别人用java写的就暂时放一放了
  • 第五题我的想法是将获取的数据一行一行判断,有T的获取其对应的数,一开始打算先拆为四个在对每一个拆为三个,后来发现有点多此一举了,只要对整个判断就行了

相关链接:
PTA1072
PTA1073
PTA1074
PTA1076
腾讯云配置JDK,Mysql,Tomcat以及maven
小程序初步计划

返回目录


7月27日任务

任务1:PTA乙级
第一题:1077互评成绩计算
第二题:1078字符串压缩与解压
第三题:1079延迟的回文数
第四题:1080MOOC期终成绩
第五题:检查密码

任务2:垃圾分类实现模糊查询,实现图片查询的调用
实现增加和修改垃圾的功能

7月27日总结

任务1:

  • 第一题:将老师给的分数与学生给的分数先分开,然后先判断是否合法,然后放入新数组,因为不知道具体几个合法的所以放入新数组会放不满,所以要去掉里面的多余部分,这里我又放入另一个新数组,然后排序,不要最大和最小取中间部分,第一次计算平均值要用double,第二次四舍五入后转int型.
  • 第二题:这题想了下一开始以为不看空格只看字母,然后就天真的以空格分割一个个判断,后来突然发现压缩后的有个a3,才知道空格也算在内,然后就用了tochararray转换为字符数组,从头比较,但是比较的方式想了半天没想到怎么比,自己写的总有问题,然后就看到大佬写的多了几个判断,如判断是否是最后一个字符,最后一个字符要单独拿出来添加,还有解压的时候字符数为两位数以上的时候大佬用了一行代码就解决了num =num * 10 + (now - '0'); 这里我采用了很多别人的代码所有就多加了一些注释.
  • 第三题:这题做的时候遇到好多bug,比如ArrayList不能直接tostring转换,在网上找了两种方法发现有stringutil.join(ArrayList)string.join(string,ArrayList)两种方式转环string型,这里我使用了后面这种,两种具体区别我没了解,应该是一样的效果.

今天浪了一天只做了三题…

PTA1077
PTA1078
PTA1079

小程序初步计划

返回目录


7月28日任务

任务1:PTA乙级
第一题:1080MOOC期终成绩
第二题:1081检查密码
第三题:1082射击比赛
第四题:1083是否存在相等的差
第五题:1084外观数列

任务2:垃圾分类实现模糊查询,实现图片查询的调用
实现增加和修改垃圾的功能

7月27日总结

任务1:

  • 第一题 这题我做了好久,网上没找到用java写的,c++写的看的不太懂,这题在判断的时候遇到很多问题,这题我默认每个学生都参加了总评,虽然题目没说,没参加的话就会多好几条判断,而且总评都算不了,按理说应该都参加了,然后从总评中取学生对参加前两项进行比较,其中我用了一个stringBuilder一个string数组来合并学生,其中stringBuilder判断是否为空可以用.length是否大于零,在这里我找了好久的bug,排序我就用的常规排序.
  • 第二题 这题我采用了几个用正则判断是否含有字母或数字,或特殊字符的三种方法返回boolean,感觉这样写会方便些,我看其他人都是用了>‘a’,<‘b’…等等方法判断,我认为还是用正则好些,其中小数点的判断不知道怎么从特殊字符的正则中单独分离,所以我就在正确密码上面加了单独判断.
  • 第三题 这题我用了hashmap存储参赛者编号与距离,然后通过获取最大与最小距离再通过距离这个值获取key也就是编号
  • 第四题 这题是最近这几题里面我感觉最好做的了,直接获取数字,并根据差值计数放入新数组,然后根据计数的数量是否大于1非递增判断输出
  • 第五题这题跟之前做的压缩有点像这里判断有一点不同,计数为1的时候不需要增加判断,和最后一位与前面不同的时候要再循环外判断计数是否为1.

任务2:实现类模糊查询,虽然实际情况不是很好用,图片调用没怎么看懂,增加垃圾功能以实现同时还能判断是否有这个垃圾有的话就不添加.
总结明天再详细写下,还有一些问题没解决.,同时还将此demo打包到了腾讯云服务器中,数据库还没导进去,还得另外学.

PTA1080
PTA1081
PTA1082
PTA1083
PTA1084
小程序初步计划

返回目录


7月29日任务

任务1:PTA乙级
第一题:1085PTA单位排行
第二题:1086就不告诉你
第三题:1087有多少不同的值
第四题:1088三人行
第五题:1089狼人杀-简单版

任务2:读并发编程之美.
任务3:在腾讯云上部署javaweb并连接数据库.
任务4:啊哈算法

7月29日总结

任务1:

  • 第一题这题刚开始就想着循环判断计数,但是实际操作完全没思路就找了大佬写的研究了一番,里面用了TreeSet进行添加排序,有几处还是没看懂
  • 第二题这题一看我就想到了之前用的数组反转,先将乘积转化为string分割放入ArrayList中然后反转,再将反转后的数join到string中转为int输出
  • 第三题这题要不同值的个数我就想到了TreeSet的特性,这题很快就解决了,其中要注意用Math.floor()向下取整.
  • 第四题这题求解一开始不知道怎么做,看了其他人写的才知道可以用循环,甲的大小已经固定在两位整数了所以计算量不大.这题虽然看起来不难但是有很多坑,中间计算的时候要全转为double型计算,或者从一开始就用都变了定义,但后面还是有几处要转int,所以我就没去改动.
  • 第五题这题看的我头大,完全不知道怎么去判断,唯一能想到的就是枚举将每种情况都列出来判断是否符合事实,但是具体去写就有点不知所措了,然后我就找了些c++的研究了下,没找到java的,发现大部分都是暴力枚举,然后我就采用了一个进行修改,他原本是将第二个列子里面所有例子都输出,但我还是按照题目给的结果break掉了.

任务2:在放通端口的时候花了好久,腾讯云老是出错,重启了两次才把入站和出站规则全放进去.
具体导入用的navicat

任务3:读了第一章的一点了解了下进程与线程的基础知识.

任务4:

PTA1085
PTA1086
PTA1087
PTA1088
PTA1089
并发编程之美小结
小程序,垃圾分类
部署javaweb到腾讯云

返回目录


7月30日任务

任务1:PTA乙级
第一题:1090危险品装箱
第二题:1091N-自守数
第三题:1092最好吃的月饼
第四题:1093字符串A+B
第五题:1094谷歌的招聘
第六题:1095解码PTA准考证

任务2:并发编程之美

任务3:啊哈算法

7月30日总结

任务1:
因为就剩六题了就把都做了花的时间有点多…

  • 第一题这题和之前做的单身狗那题差不多,本来想用构造的但是出了点问题就用了二维数组,而且这题用哪个都差不多这题难度要比前面那个还低一些
  • 第二题这题的思路是将数字转为数组从最后一位开始比较,记录每一步,如果每一步都相等,则最后几位满足要求,根据执行的步数判断是否获取到需求的数.
  • 第三题这题挺简单的,只要计算每一种月饼的总销量,找出最大销量得到月饼,然后输出最大数对应的所有序号就行了
  • 第四题这题很简单,一开始我看理解了题,把并集当成交集,浪费了点时间,这题只要判断中间存储遍历StringBuilder中是否包含要存储的字符串,不包含就存进去,先存A再存B.
  • 第五题首先先把判断素数的方式写好,然后就是找数字了,这题也不难,只要每次判断一位,获取这一位及其往后的一共K位数是否为素数就行了
  • 第六题这题难度还不算太大就是要判断的有点多,而且做的时候思路不是很清晰,排序有两个用的冒泡排序虽说数量少才用的,但还是有点不合适,但我也不知道能用那些别的.

任务2:
继续看了几节看的有点吃力所以先停一下先看mybatis

任务3:
继续看了一章,了解了栈,链表,和枚举,书上用的都是c++有点不同,但不影响理解.

相关链接:
PTA1090
PTA1091
PTA1092
PTA1093
PTA1094
PTA1095
啊哈算法

返回目录


7月31日任务

任务1:上午学习Mybatis

任务2:下午学习SpringMVC

任务3:继续啊哈算法

7月31日总结

昨晚下载的视频出了点问题,重新下了下,一会一闪退,就先完善了下前面写的小demo,mybatis的教程前面一部分讲了些基础知识和框架
刚看到mybatis的介绍,学习了springmvc的一些基本知识,但是教程的步骤还卡着,一直有问题没能达到视频教程的效果.
这次笔记写的有点乱教程看的有点迷,学的不是很懂.

前面浪费的时间有点多没看多少算法,就看了下枚举剩下的部分,和深度优先搜索

相关链接:
初学Mybatis
初学Spring
啊哈算法
小程序demo初试github

返回目录


8月1日任务

任务1:继续学习Mybatis和SpringMVC
任务2:继续啊哈算法

8月1日总结

任务1:
看了前面一些教程发现好多地方idea都不太一样,写法思路都是一样的,目录结构不太一样,idea结构更清晰,跟着教程走很多地方都有问题,所以就先不管这些,先学概念和思路以及一些语句.
学到这里也算是了解了一些Mybatis的一些基本配置,但还是很生疏,还得多使用,目前了解到了Mybatis的一些xml配置,还有一些基本的查询语句List,map等.

springmvc也了解了更多的配置,了解了大概的配置步骤,但对idea的详细配置还不是很了解,具体慢慢了解
这里附上我csdn看的一片挺不错的文章.

晚上重新搞了下SpringMVC,重新在网上找了idea版的SpringMVC搭建教程,总感觉前面跟着eclipse教程写的有问题,在这里我找到了SpringMVC的问题所在,tomcat配置中url不能改,改了就出问题了,

任务2:算法看了两节被几个问题卡了有点久,更加详细的了解了深度优先搜索.

相关链接:
IntelliJ IDEA 创建Spring+SpringMVC+mybatis+maven项目
初学Mybatis
初学Spring
啊哈算法

返回目录


8月2日任务

任务:继续学习Mybatis和SpringMVC

8月2日总结

今天把之前没实现的东西都重新搞了下,找了一些idea相关的mybatis和SpringMVC配置,总算是实现了最基础的,
视频教程用的eclipse还是有点区别的.
今天下午有点事spring就照着教程写了上面讲的demo,但是一堆bug,正在想办法解决.
了解了下springmvc作用域传值方式

强行学了下ssm整合,了解了相关步骤,但还是有一些bug没解决

相关链接:
推荐ssm整合教程
Mybatis教程-实战看这一篇就够了

返回目录


8月3日任务

任务1:了解java类的加载过程

任务2;了解ssm整合

8月3日总结

任务1:总结了下类的加载过程,了解了具体原理,其中用到了反射这块,了解了反射的原理及写法

任务2:根据一个教程写了个小小的ssm整合,但是一直有service层无法注入的问题,搞了一天看了各种解决方案都没用
继续研究中,目前确地是配置文件的问题,还发现了编译后的target文件中配置文件很多爆红

相关链接:
类的加载过程及反射的相关知识
推荐ssm整合教程
参考博客:java反射(特别通俗易懂)

返回目录


8月4日任务

任务1:继续研究ssm,看别人的demo,总结昨天的ssm demo

任务2:整合之前写的项目,将其变为ssm

8月4日总结

任务1:上午把昨天的ssm总结了下,昨天搞了一天算是把所有的bug都解决了.对ssm的整体目录结构有了更深的了解

任务2:目前整合初步成功,除了页面实现了对数据库的一系列操作,如查询垃圾信息,登录判断账号密码的操作插入垃圾信息的操作
已将项目上传github

相关链接:
IDEA SSM简单整合
小程序,垃圾分类
github源码

返回目录


8月5日任务

任务1:继续研究ssm整合

任务2:完善昨天整合的SSM将页面ajax请求都整合过来

任务3:啊哈算法,学习树

8月4日总结

关于页面的整合具体写法和以前差不多,目前已经成功将之前的demo完全整合为SSM.
学习了SSM中关于Filter的配置
学习了树的基础知识及二叉树的相关知识
了解了满二叉树与全二叉树

相关链接:
github源码
小程序,垃圾分类
啊哈算法

返回目录


8月6日任务

任务1:先下载ssmPDF看着等书来了看书

任务2:学习小程序

8月6日总结

今天有点蛇皮没看多少,下PDF下了好久发现不对,然后又重新下,了解了下微信小程序代码与web的大概区别,这里我看了一篇关于小程序的SSM通信
目前还在下微信开发者工具
关于SSM了解了Spring框架的IoC和AOP

参考链接:
实现微信小程序与服务器(SSM)通信
啊哈算法

返回目录


8月7日任务

任务1:看SSMPDF

任务2:学习小程序

8月7日总结

看了javaEE轻量级框架整合开发SSM框架这本书的PDF,巩固了前面SpringMVC,和Mybatis的一些基础知识,了解了Spring的一些相关内容

下了各种版本的微信开发工具终于能用了,但是如何将idea项目弄到里面还不会
搞了半天感觉还是要下最新版的开发者工具,之前下的这个版本太老了,跟官方文档相差有点大

完善了下堆的代码

相关链接:
啊哈算法

返回目录


8月8日任务

任务1:重新搞微信开发者工具

任务2:完善项目,增加图片搜索功能

8月8日总结

重新找了个资源下了早一点点的版本终于能用了,但是还是不会用

然后就先完善了下项目,增加图片识别功能,看了百度视图API的官方文档,因为access_token获取ak/sk问题搞了半天
官方文档只说用安全中的ak/sk不能使用access_token方式,没说具体方式,下面对应的教程也没变
然后我就找了网上其他教程看了下要创建项目,再管理项目中找到ak/sk
这个问题解决后就是识别的图片获取的json数据分析问题,
目前还有点小问题没解决

返回目录


8月9日任务

任务1:完善项目,完善昨天的图片识别

任务2:增加拍照上传,研究语音识别

8月9日总结

昨天遗留的图片识别问题目前已经解决,昨天用的action不方便接受数据,改为ajax就可以了
因为一开始不知道ajax可以直接上传图片看了好多用插件的,但又没找的免费插件资源就用了action,
遇到困难后才继续找ajax的方法最终得到解决

拍照功能搞了半天搞不出来,还得再研究下
今天研究了下语音识别拿了别人的代码试了下,能识别但是一直报错,错误原因查了下是目前主要是音频质量问题,感觉还有其他问题,目前
实现的只是识别本地音频文件,在线识别还没搞懂,而且html相关控件也弄不出来,可能是浏览器版本问题,也可能是写法有问题.

相关链接:
小程序,垃圾分类


8月10日任务

任务1:解决昨天遗留下来的问题

8月10日总结

昨天搞了一晚上语音识别结果不小心误动了图片识别的代码,搞了半天没找到问题在哪
今天中午搞了下终于找到问题所在,id选择器中双引号不小心改成了单引号,还有url的单引号写成了双引号

语音识别还是不知道怎么搞,实时识别好像都是付费的.
今天SSM书到了先看看书了

返回目录


8月11日任务

任务:看SSM书

8月11日总结

今天睡得天昏地暗,还被系统搞得头大,deepin跟新15.11暂时禁用了prime方案,我手贱切错了然后切不回来了,然后每次开机都要卡在开机界面好久,切了好几次方案就先切到一个开源方案暂用了
然后就是看书,我先看了Mybatis的相关知识,了解了下持久层的概念和Mybatis的特点
了解了Mybatis核心组件
SqlSessionFactory的功能及其用xml文件构建的方式

相关链接:
JavaEE轻量级框架整合开发 SSM框架和Redis实现读书笔记

返回目录


8月12日任务

任务:看SSM书

8月12日总结

还是不太习惯看书,今天看了MyBatis的映射器,发送Sql的方式,还有MyBatis的部分配置,如properties,settings,typeAliases
再次了解下了spring IoC,通过控制反转被动创建所需对象.了解了一些属性的注入和装配,了解了一些基本的注解

返回目录


8月13日任务

任务:重装系统,看SSM书

8月13日总结

今天重装系统因为没备份,花了不少时间,主要网速太慢,下东西下了好久,然后又配置了好多东西
今天真的惊险,上传到github的代码有空的一开始没注意这次下载下来才发现,还好发现的早,可以到腾讯云上找到部署过得war包找到代码
找到代码还不行里面全是.class文件需要反编译
idea反编译参考:https://www.cnblogs.com/lu51211314/p/9546786.html
其实放到idea中就已经反编译了
修改之后发现一些问题,研究了一下发现湿配置文件有改动出错了少扫描了一个mapper
然后再次部署到腾讯云又发现了一些问题,一开始报数据库连接的错误我发现腾讯云用的是8点几的版本所以driver中要用jdbc.driver=com.mysql.cj.jdbc.Driver里面多了个cj,
修复这个错误之后登录的功能能用,但是查询的功能不能用,报的错误是无法获取数据库连接,查询的mapper.xml文件有错误,但在本地运行没有任何问题,然后我就想到了可能是语句有问题,但我用的语句就是个简单的查询和插入,与登陆用的语句几乎是一样的,此问题还待解决
目前代码已放到github
链接:https://github.com/wbbj/atom

返回目录


8月14日任务

https://blog.csdn.net/qq_30039097/article/details/95669311#1 任务:看SSM书

8月14日总结

上午继续研究了下部署到腾讯云上的代码问题还是没解决
然后看了Bean装配,Profile的注解和XML配置和Properties的注解和XML配置
了解了下Spring EL运算
EL中注解@Value("#{}")
类的静态常量@Value("#(T(Math).PI)")
EL的各种运算

返回目录


8月15日任务

任务:看SSM书

8月15日总结

了解了AOP,看了下动态代理,不是很懂
下载了postman用于研究别人的代码
下载教程参考:
Deepin安装postman
代理的意思就是我只管做我要做的事,相关的详细事情由代理完成
动态代理采用了反射的技术
相关文章:
设计模式-一定能让你看懂的静态代理与动态代理
这里面我在idea写的时候要加异常

返回目录


8月16日任务

任务:学习SpringBoot

8月16日总结

今天学习了springboot编写一个简单的helloworld以及Servlet整合
了解到Controller类与启动类位置的要求,启动类不能在Controller类子包下或平级包下,可以在其上级或用同一个包下
然后servlet整合有两种方法,第一种注解扫描传统的servlet写法,第二种在application启动类中添加@Bean然后添加新方法,通过ServletRegistrationBean为servlet添加url
后面相继学习了filter和listener的整合与servlet方法类似
今天对所有学习的东西整理了下,csdn也重新调整了下分类

相关链接:
SpringBoot编写HelloWorld
SpringBoot整合Servlet及Filter还有istener

csdn链接:
贝爷的奇遇冒险,初学java的菜鸟

返回目录


8月17日任务

任务:学习SpringBoot

8月17日总结

今天找了springboot的视频重新了解了下SpringBoot
了解了springboot的初级结构
springboot是spring微服务的一个基本框架
大体流程就是学习springboot入门,Springboot整合web开发,springboot视图层技术,springboot整合持久层技术
前面两个昨天已经学习过了,下面就是学习后面的内容
今天学习了springboot访问静态资源
springboot文件上传
springboot整合mybtis

返回目录


8月18日任务

任务:学习SpringBoot
制作简历

8月18日总结

今天学习了下Springboot访问静态资源和整合redis
安装了redis及其可视化界面
制作了下简历。

相关链接:
安装redis及springboot整合redis
springboot访问静态资源

返回目录


8月19日任务

任务:看了点项目,小复习

8月19日总结

今天太累了休息了下,敲了点代码,看了点Cookie和Session的内容

返回目录


8月20日任务

任务:继续研究项目,复习

8月20日总结

今天上午看了把javaweb内容复习了下
下午复习了下java基础知识,还有部分容器
晚上继续看了看项目

返回目录


8月21日任务

任务:继续研究项目,复习
压缩简历PDF

8月21日总结

今天继续搞了下简历,用wps导出的PDF太大了14M左右,然后想用crossover装office,但不知道破解软件怎么弄,要么是装不下来要么是装下来了打不开,还有待研究,暂时用朋友电脑搞了下
继续复习剩下的java基础部分
看了下切面的一些代码
安装了RabbitMQ,网速太慢下了好久,还没配置和学习相关内容
今天看的资料有问题重新找了看了下
看了下奇安信去年的春招面试题,好难,但是基本就是那一套.

返回目录


8月24日任务

任务:继续研究项目,复习

8月24日总结

这两天在朋友这边活动有点多,玩上头了
今天也只搞了点代码,看了点面向对象和面向过程的相关知识
有些容器之前特别学过就直接拿过来复习了下
还有java和c++的区别,成员变量与局部变量关系等java基础知识

返回目录


8月25日任务

任务:SpringBoot整合RabbitMQ以及Elastisearch,复习

8月25日总结

整合RabbitMQ过程中安装RabbitMQ后登录信息不知道怎么填搞了半天以为配置的有问题,后来查了下登录默认账号是guest/guest
然后整合过程中很多爆红,目前未解决
整合Elastisearch因为一些事情耽误了,官网又进了半天没进去明天在搞
回顾了下前面的基础知识,全面看后面忘太难记了,相关容器又看了下部分的底层实现.

相关链接:
springboot整合rabbitMQ

返回目录


8月26日任务

任务:解决昨天SpringBoot整合RabbitMQ留下的问题,复习

8月26日总结

昨天的问题解决了,今天又遇到新的问题,越弄越复杂,我看了其他的整合教程用connectionfactory是配置RabbitMQ相关连接信息的,这里我用的教程相关信息已经在.yml中配置好了.还得再搞搞
继续看了些基础知识
下午看了进程,线程,程序的相关内容,==,equals,hashcode等内容
了解了线程的基本状态及状态转换过程

相关链接:
springboot整合rabbitMQ
==与equals
hashCode与equals
其他知识

返回目录


8月27日任务

任务:复习

8月27日总结

今天继续复习了后面的一点,如final关键字,java中的异常处理等等
回顾了下前面的内容都忘的差不多了

返回目录


8月28日任务

任务:复习与看项目

8月28日总结

继续将剩下的java基础复习完,有IO关键字工具类等,再把基础部分重新回顾下,前面看后面忘,得多看几遍
看了点项目的逻辑部分

返回目录


8月30日任务

任务:复习

8月30日总结

今天把Collections和Arrays工具类简单的看了下
了解了Collections的排序,查找与添加操作
Arrays的排序,查找,比较,填充,转列表,转字符串,复制操作

看了一点程序设计:泛型和用数组方式实现栈
具体代码多还得多写几遍
相关github链接:
https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/Java%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E9%A2%98.md

看了点Servlet介绍及其与CGI的区别的相关知识

相关连接:
Collections工具类和Arrays工具类常见方法


8月31日任务

任务:复习

8月31日总结

上午看了点牛客网的一些面经和一些其他经验,了解了一些面试的东西,看了点面试问到的问题,然后跟着博客系统的看了下,
刚看了点计算机网络的知识点,了解了互联网的一些基础知识

下午本来是要搞项目的,听说学校的一些任务马上要交了,就赶紧搞了下,好久没写很多字的东西了
写的手疼,明天还得继续写,先把学校的任务搞完在继续搞其他的

9月1日任务

任务:复习

9月1日总结

今天上午继续看了网络的部分基础知识
下午继续做学校留下的任务

返回目录


9月2日任务

任务:复习

9月2日总结

继续复习计算机网络的一些知识看了一部分网络层的知识
将项目基础代码部分搞了下.

返回目录


9月3日任务

任务:复习

9月3日总结

上午去办理了下学校里面的相关任务

下午看了下RabbitMQ的相关知识,了解了RabbitMQ的具体含义,了解了RabbitMQ是干什么用的,了解了它的优缺点
看了下其他的相关代码

返回目录


9月4日任务

任务:复习

9月4日总结

这两天准备了下面试内容看了些面经,了解了一些面试题,
比如list,set,map的区别,HashTable,HashMap,ConcurrentHashMap的区别,简单的垃圾回收机制原理,详细的JVM垃圾回收机制需要详细去看,之后慢慢了解
了解了下悲观锁乐观锁,只看了概念而且记的不熟,
详细看了下TCP三次握手四次挥手,看了一些相关问题
了解了下事务.
时间不是很充分记住的知识不多
晚上发现可能是被鸽了,因为昨天对方问了挺多问题忘记都没说约什么时间面试…

返回目录


9月5日任务

任务:复习

9月5日总结

继续复习了点网络的知识
今天将昨天看的部分内容总结了下,如TCP三次握手四次挥手等内容

相关连接:
set,map,list区别
HashTable,HashMap,ConcurrentHashMap原理与区别
TCP三次握手四次挥手

返回目录


9月6日任务

任务:复习

9月6日总结

今天继续复习网络的知识,背起来有点绕口
在使用redis时遇到了
template.setConnectionFactory(factory);
爆红的现象,查找原因是缺少spring-dao包
配置了下Elasticsearch,这个东西是真的坑
添加用户组的时候一直有错,查了别的教程后发现是写法有问题
因为是在本地配置的,看的教程是云服务器配置的,基本步骤还是一样的
做一步遇到一个问题,后面curl的安装又又出现问题

返回目录


9月7日任务

任务:复习

9月7日总结

写了好一会的总结软件闪退没了…
今天主要继续复习了网络的知识
然后就是继续安装与配置Elasticsearch
遇到了很多问题,主要还是是细节上的问题
比如port改漏了,用户的问题
最后总算是安装成功了
接下来就是研究整合Elasticsearch了
又是一堆问题要解决

相关连接:
Elastisearch的安装与配置

返回目录


9月8,9日任务

任务:复习

9月8,9日总结

这两天准备了下面试,接了一个软通动力的电话面试,总体来说有点水
虽然问的问题挺关键的,答还算一般
然后就是奇安信的笔试,最近刷题没什么效果,该会的都会,不会的还是不会,
就是算法编程第二题有点可惜,最近都怎么看算法,就刷了几道编程题,没涉及到树的题目
还是要好好复习下最近遇到的问题

返回目录


9月10日任务

任务:复习

9月10日总结

今天主要继续复习了下网络的部分,最近刷题刷面经都没怎么复习了,再加上有点蛇皮
目前已经算是拿到软通动力的offer了,但还需要继续学,找更好的公司
然后就开始看看之前面试没答出来的东西,好好记一下
了解了下设计模式


返回最顶层

你可能感兴趣的:(学习总结)