做兽设的网站,网站建设感受,app制作简易网站,加工厂怎么找订单一#xff1a;题目 博主本文将用指向来形象的表示下标位的移动。
二#xff1a;思路
1#xff1a;两个整形#xff0c;一个start#xff0c;一个end#xff0c;在一开始都 0#xff0c;即这里都指向第一个元素。
2#xff1a;在查到val之前#xff0c;查一个题目 博主本文将用指向来形象的表示下标位的移动。
二思路
1两个整形一个start一个end在一开始都 0即这里都指向第一个元素。
2在查到val之前查一个end就赋给start一个然后再双双1即指向下一个元素。
3当end查到了val的时候此时此刻start和end都是指向val的所以此时我们让start就不变了让end去向后遍历找到第一个不是val的值从这个值开始只要end指向的值不是val就覆盖掉start指向的值。覆盖一次双双向后移动一次再次判断end然后去覆盖直到end超出数组范围
4最后所有不是val的值都会被放在前面然后返回start的值即可他的值就是与val不同的元素的数量。
三思路的讲解
1假设数组是以下val为2。 Q:我们用end去找的时候为什么不是val要将end赋给star并且双双1
A1双双1是因为要确保end找到val的时候此时此刻end和start都指向了该val A2end赋给start是因为在后面有重要作用要用end指向的非val元素去覆盖start指向的val元素并且这一步在找到val之前对数组没有任何的影响
2遇到val的时候
此时strat指向val不再移动然后让end向后一直遍历找到第一个不是val的值。用这个值去覆盖start指向的val
即 3覆盖完成后双双向后移动只要end指向的值不是val就去覆盖掉start 4最后end会超出范围即指向2后面的元素这时候跳出循环
即 5此时start的值就是所有非val的元素的个数
四代码展示 总结此题思路理解之后书写极为简单