- 博客(20)
- 收藏
- 关注
原创 24 两两交换链表中的节点
这个就很简单啦,就是head1=cur这个很不好想,因为我交换后让head=head.next.next;说实话也可以,但是我一开始没发现它可以等于cur,还以为等于temp,其实交换了呀!总之java写这个真的不难,C的话我估计很难咯。head1是我做的一个无意义的虚拟头节点。cur用于存放当前交换节点的第一个。head2用来标记返回的位置。
2023-11-16 20:32:27
103
1
原创 Java中使用多态和没使用多态的一些小思考
总之是使用多态的写法肯定会更加严谨,如果直接改掉的话,student里本身合法的调用自己函数的情况其实在改成teacher的时候就有可能报错,一些返回值啊什么的也会变啊。这种没有使用多态的写法,换成teacher可以Teacher s = new Teacher();3.2 没有使用多态的写法,想把myN生成返回的对象类型改为Teacher,就必须要改代码的返回和内容,返回要改就改很多了。以后肯定还会遇到,希望到时候不会再困在这里这么久了,其实也都是小细节,我只是想更加深刻的去理解这个多态的运用。
2023-11-15 18:11:27
114
原创 206 反转链表 双指针
比C++简单好多啊,主要是C++里有指针,很难,不过JAVA也算是模拟了那个过程,写一写还是能够帮助理解的,后面有机会再写C++的吧。这个我还想了一下,因为一开始我的prev是一个结点,但是我又改成null,因为反转后的链表的结尾也应该是null才正确。这个是双指针,前驱和当前,每遍历到一个结点,就把它的next改为前驱,直到遍历到null停下。
2023-11-15 15:05:34
101
原创 206 反转链表
感觉像在一个空旷废弃的学校里写日记~~这个不难,我是新建了一个链表,复制了每一个结点再连接起来。等会儿试试在原基础链表上修改是什么情况。
2023-11-15 15:01:01
469
原创 707 设计链表 JAVA 双链表
也不算太难,主要是我感觉这个add和delete也可以用get那种寻找的方法用prev做,但是我太累咯,今天就到这儿了。感觉不难,也花了很久,但是对链表的理解更加深刻了。双链表是一定要有头尾的!很方便啦,以前用C++的时候觉得vector特别好用,现在java也会写咯。
2023-11-14 23:28:06
48
1
原创 707 设计链表 JAVA 单链表
java不是很难,C才难,以后有时间再说吧,总是会思路但不会手搓,爪哇太简单咯。下面是单链表的 一会儿再水一篇双链表 嘻嘻 我爱写爪哇。
2023-11-14 22:16:17
411
1
原创 203 移除链表元素
这种就清爽很多,第一是清除了链表头部所有val,再根据新的头部去删除下面出现的val,判断的是所在位置本身,就可以在cur.next是null的情况下,跳转到null时退出循环,如果是判断cur.next就会多判断一次,因为cur是有可能变成null的。但其实我的思路很繁琐,因为在这段代码的加持下,已经删除所有链表开头的val了,所以能进入while循环里的链表,开头一定没有val,所以我们直接拿head来判断和删除就行,就不会出现head等于null了,null.next的情况。
2023-11-14 14:54:50
56
1
原创 59 螺旋矩阵II
k代表每个数字,x和y代表每次遍历用的,loop代表圈数,qbj前边界hbj后边界,主要就是。比如4x4,00-02这三个是一个循环的,03-23是一个循环,33-31是一个,以此类推。奇数的最后中间会有一个多余的字,它是n*n。这个不算太难,要点就是。
2023-11-13 21:00:26
56
原创 209 长度最小的子数组 复杂度理解
滑动窗口比较灵活,像遍历但是又省去了从最小开始判断的情况,让这个sum的值一直在target周围判断,比如此时sum比target小,就往后一个,大了就减去前面的值,这样来回的操作,每一个都没丢掉,又丢掉了多余的情况,并且每一次都是判断了前面情况中最优解的值,所以更不会存在遗漏的情况。它的时间复杂度是O(n),我是这样理解的,就举一个比较极端的情况,j++,i++,每次增加一个数字都比target大,每次减去一个都比target小,这样进去一次,出来一次,总共就是2*n,也就是O(n)。
2023-11-13 16:47:07
218
原创 关于Java里的Clone函数
可算搞明白了,但是对于浅拷贝和深拷贝还是没分清楚好像我怎么写都出不来深拷贝,一直都是同一个字符串首先注意:有protected修饰,关于这里我写过一篇我一直都是搞错了这个protected修饰所以一直报错这是我在测试类里写的,MyClone是一个我自己新创建的类写在测试类里报错的原因其实我也不是很有把握,首先不满足同个包,但我认为不管是MyClone类还是测试类都是Object的子类,为什么在测试类里调用就会报错与此同时在测试类里这样写根本不会报错,,
2023-10-22 21:49:28
72
1
原创 7-3 最小生成树构造
某地对偏远地区实行“村村通”工程,目标是使整个地区任何两个村落间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到拟修建道路的费用,现请你编写程序,计算出全地区畅通需要的最低成本。
2023-04-21 00:28:19
894
原创 试题 历届真题 幸运数【第四届】【省赛】【B组】
想用数组但是总感觉好像会又好像不会的,又因为这个1000*1000还挺大的,所以循环下来很长时间,后面发现规律了,1 3 7 9...当右界那个数字小于9的时候,他的幸运数就不用考虑9以后的数字,这也是我们使用筛法的临界值,参考了别人的代码,但我自己是预处理了一下不然运行时间太长了。这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,...)幸运数是波兰数学家乌拉姆命名的。首先从1开始写出自然数1,2,3,4,5,6,....
2023-04-05 22:43:51
129
原创 试题 历届真题 饮料换购【第六届】【省赛】【B组】
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能得到多少瓶饮料。输入:一个整数n,表示开始购买的饮料数量(0<n<10000)输出:一个整数,表示实际得到的饮料数。
2023-04-02 17:07:47
81
原创 试题 历届真题 错误票据【第四届】【省赛】【B组】
因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000)要求程序首先输入一个整数N(N<100)表示后面数据行数。你的任务是通过编程,找出断号的ID和重号的ID。要求程序输出1行,含两个整数m n,用空格分隔。其中,m表示断号ID,n表示重号ID。假设断号不可能发生在最大和最小号。每个整数代表一个ID号。
2023-04-02 16:34:22
89
原创 试题 历届真题 全球变暖【第九届】【省赛】【B组】
由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。第一行包含一个整数N。(1 <= N <= 1000)照片保证第1行、第1列、第N行、第N列的像素都是海洋。以下N行N列代表一张海域照片。
2023-04-02 15:29:39
133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人