int removeElement(int* nums, int numsSize, int val)
{int src =0;int dst=0;while(nums<numsSize){if(nums[src]!=val){nums[src++]=nums[dst++];}else{src++;}}return dst;
}
移除数组元素
利用两个变量 设置变量的目的是 就是利用数组下标去访问判断 再根据题目的条件 就是又有了一个数组 将数组中不等于要删除的值放到新的数组里 如果他两相等了 存放不等的那个数组 先不动 让那个 自己动 这样不就是把那个要删除的值给咔嚓了 最后不是好的把这个新整出来的数组给弄没了 要不那个原来的数组 不是就没变 就得return dst 我以为呀 听懂课就可以了 还是要听过的这些题 真的自己能在写一遍 那才厉害 时间复杂度 o(n^2) 最坏的情况
应该注意 liqing思路 想明白为什么这样做 这些问题都有一个本质就是数组 移动 生成新的数组 好的留下 不好 reckon important veryvery
赋值 从right left =
elvation ==
都是坑 cannot只是傻不垃圾考虑一种情况 还多动脑子 你数学也是一样 很轻松就做出来的多半就是错 你想 那么难的考试 怎么可能easy
题目中一共3个数组
wo igh ind a e i(y) o u 开 e 单词音
哎 唉 业儿 藕 嗯
利用快慢指针 slow fast 返回慢的
分割链表这种类型题 利用的是新开辟出来2个链表 小于的插入一个链表 大于尾插第二个 在连接 再把之前的销毁