今天被坑惨了,提交数10遍,我真愚蠢,答案给我,我都抄不对
举个 栗子 吧!
- //请问你是否会觉得一下两种都是对的
- 1.
- while(left<=right)
- {
- while(num[left]!=target && left<=right)//就这不一样
- left++;
- while(num[right]==target && left<=right)
- right--;
- if(left<=right)
- num[right]=num[left];
- }
-
- 2.
- while(left<=right)
- {
- while(left<=right && num[left]!=target)
- left++;
- while(left<=right && num[right]==target)
- right--;
- if(left<=right)
- num[right]=num[left];
- }
哈哈哈哈,如果你觉得一样 ,哈哈哈哈,就会和我一样品尝到无限的死循环的快乐
如果数组只有一个元素,现在要么等于目标值target要么不等
呢就有趣了,要么left++,要么right--;
巧了如果你把判断条件num[left / right] != / == target放前,碰见它直接非法,都是非法访问!!!!!!!!!!!
我的心情:“草字头”
所以以后数组判断的问题,都把num[a]这种玩意放最后,如果判断条件只有这个,小心越界,很痛苦,很难发现