- 博客(10)
- 收藏
- 关注
原创 9、力扣刷题977
定义了一个空的vector。所以后面对里面的元素赋值出现空指针。非递减顺序就是递增吗?有没有可能一会递减然后一会又递增,这样子整体上来说也不是递减啊!
2024-07-16 10:18:28
175
原创 8、力扣844题
修改数组长度,如果没有这两句的话,只是sslow指针的位置发生改变,实际字符串并没有发生改变。修改数组的长度用resize()这一段是当出现a###b这种情况时,sslow等于1,不能无限-1,否则数组越界。1.由于for循环下面有sslow--,所以sslow要初始化为1.2.在C++中“ ”包含的是字符串,‘ ’包含的是字符。
2024-07-15 22:10:33
180
1
原创 力扣26题
这是因为while在这个for循环下面,就不会受fast<nums.size()的约束。所以当数组中所有数为1时,fast会一直往后加,直到fast指针越界。for循环已经自动在给fast++了,所以如果有好几个连着的1,那么及时for循环中什么都不做,进了for循环fast也会自动++。注意for循环中fast是<nums.size()-1还是<nums.size()我觉得如果下面用到fast+1的话就是<nums.size()把[1,1]用例加入以后,发现问题出现在下面这一行。
2024-07-12 21:36:42
415
原创 力扣27题,删除元素
在vector中封装了一个库函数erase(),用来删除数组中的一个元素,它的实际时间复杂度并不是O(1),而是O(n),因为由于数组的内存空间是连续的,所以数组中的一个元素没有办法直接删除,只能通过将后面的元素往前覆盖来实现。双指针删除数组中的元素,时间复杂度O(n),双指针用一层for循环来解决暴力算法中两层for循环所要做的事情。最后慢指针的位置就是新数组的大小。(2)一种方法是一个快指针,一个满指针。即将快指针寻找到的值赋给慢指针。快指针寻找新数组中所需要的元素。,寻找到新数组所需要的元素后,
2024-07-12 20:04:10
188
原创 力扣35、34、69、367(34、69、367未找到问题所在)
不整除是/ ,注意当使用/进行不整除时,要确保至少有一个操作数是浮点类型。语法错误,C++中不能这样返回数组。并且这里函数的返回值是vector。一开始定义的vector result;为空,所以后面不能用。9.数组排序(内置的排序方法)1.创建vector数组。而且注意没有加临界条件。有一个测试用例没有通过。在C++中,整除是//修改,因为访问不到。
2024-07-10 21:14:30
193
原创 力扣704题*二分查找
区间的定义一般分为两种,左闭右闭即[left, right],或者左闭右开即[left, right),两种区间对应两种不同的二分写法。数组中无重复元素(一旦有重复,使用二分查找法返回的元素下标可能不是唯一)将middle的定义放到while循环里面以后,执行速度再次有所提升。和前面的双指针一样,判断条件是while(l
2024-07-10 14:26:00
133
原创 力扣27题
这里面的错误处在while,嵌套在内层的循环执行完以后才会退出,也就是说可以当内层的while执行完以后,早就不符合外层while(l<r)的条件了。在C++中,数组是静态的,一旦定义,它的大小就是固定的。如果你想要一个可以动态改变大小的数据结构,你应该使用。数组长度为0:数组不为空,但数组的“值”为空。当你想检查一个数组是否为空,或者它的长度是否为0,你可以使用。所以,应在内层while中也加上外层while的条件。i=j,且当前元素等于val时,返回i+1。i=j,且当前元素不等于val时,返归i。
2024-07-09 20:56:03
539
2
原创 力扣283题
数组的长度一开始时固定好的,并不会随着后面的数组往前移动而减少,数组最后的一个元素原来是什么就还是什么。所以不应该是在数组后面添加0,而是应该将每次将数组最后的元素重新赋0,因为上一次赋0的元素也会往前移动。可以看到最外层for循环循环了几次,在数组的最后就有几个0,所以肯定是在数组后面填0的语句加错了位置。
2024-07-09 20:37:04
183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人