/**
* 算法思想:
* 借助栈的思想(还是使用原来数组内存),遍历数组每次将一个数组元素入栈;
* 然后循环判断栈顶两个元素,是否可以相互抵消(最后一个元素小于0,倒数第二个大于0);
* 可以抵消的进行抵消处理。
*/
int* asteroidCollision(int* arr, int len, int* returnSize){
int index = 0;
int i;
for(i=0; i<len; i++){
arr[index++] = arr[i];
while(index>=2 && arr[index-2] >0 && arr[index-1] <0) {
if(arr[index-2] + arr[index-1] == 0){
index -= 2;
}else if(arr[index-2] + arr[index-1] > 0) {
//arr[index-2] = arr[index-2];
index--;
}else{
arr[index-2] = arr[index-1];
index--;
}
}
}
*returnSize = index;
return arr;
}
leetcode-735-行星碰撞-C语言
最新推荐文章于 2023-07-27 17:42:07 发布