- 博客(7)
- 收藏
- 关注
原创 24/7/10 力扣27.移除元素
首先应该注意数组是不是空的,还有就是从后往前找到第一个不等于val的元素,防止出现全是val的情况,缺少这个的话,会进入死循环,第三就是在这里,从后往前替换没有检查是否等于val,因为替换后i仍然没有+1,仍然在循环里接受审判,新替换过来的元素要是也等于val的话,会再次被后面的元素替换,直到不等于val,i才会+1。是以前做过的题,找出来看自己的代码都忘记了,也看不懂了哈哈哈。要注意特殊情况,我每次都是从报错中找特殊情况改代码。
2024-07-10 22:53:28
143
原创 24/7/3 打卡pta
设置while循环,提取最后一位,用10取余,n%10,比较数组位为1,有重复,为0,设置为1,sqrt(a),结果是float,要是想要验证是否为完全平方数,可以将开方结果变为int。设置长度为10的数组,初始化为0,每次都取下最后一位,数组对应位设为1。,在n中删去最后一位,如345,变成34,取模即可,n/10。负数取模出来居然是负数,比如-27取模10,是-7。再平方,看是否相等,要加math.h头文件。2.判断n是否有两位数字相同。
2024-07-03 23:02:06
168
原创 力扣20 有效的括号
1.这种对称匹配类的问题,很明显是要用栈,但是我不会哈哈,全忘记了,只会数据结构,不会实践,看了随想录的题解,理解了一些,栈可以直接用数组实现,再记录一个stacktop即可,2.bool 函数的返回值有true和false,true默认为1,false默认为0,可以直接返回1或0。5.匹配成功按理来说应该是弹栈,在实际应用中直接stacktop减一就可以了。3.stackTop指的是空的,stackTop-1才是栈顶元素。4.不要忘记除了不匹配的情况还有左括号多和右括号多的两种情况。
2024-03-31 20:37:50
177
1
原创 力扣541 反转字符串||
2.搞了半天怎么输入带空格的字符串,其实不用输入,是直接函数传参给出的,带空格字符串不能直接使用scanf%s,会到空格就停,应该scanf(“[^\n]”,s),或者直接用gets(s)1.经常忽略一个问题,前k个是0到k-1,而不是k。
2024-03-31 17:57:06
205
原创 力扣203 移除链表元素
4.不能直接比较i->next=val,要i->next->val=val,这样的话可以直接删掉i->next,想直接删掉i,i前面的找不到,那就没法让i前指向i后来删掉i,而i后与val比较的话那就是在删i后,直接i指向i后的next即可。5.其实代码中缺少了一个部分,被删掉节点的释放,i->next=i->next->next;这里按照随想录的话,应该让tmp等于i->next,然后再i指向i->next->next,再free(tmp),释放内存。1.函数里也可以直接用typedef。
2024-03-29 20:56:56
178
原创 力扣704 二分查找
思路很好想,最开始时间超时因为跳出循环条件错误,以为是left==right,其实是left+1=right,改掉之后就过了。//代码最开始还报过错因为我没写返回值,以后不要不写。
2024-03-29 19:33:52
141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人