生活随笔
收集整理的這篇文章主要介紹了
Leetcode题库 15.三数之和_1(双指针 C实现)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
第二次嘗試結(jié)果:成功
第二次過程如下
#include <stdio.h>void Bub_Sort(int* head
, int low
, int high
, int Bool
) {int temp
; int temp1
; for(int i
= low
; i
< high
; i
++) {temp1
= high
-(i
-low
);for(int j
= low
+1; j
<= temp1
; j
++) {if((head
[j
] < head
[j
-1]) == Bool
) {temp
= head
[j
];head
[j
] = head
[j
-1];head
[j
-1] = temp
;}}}
}int Seekaim(int* nums
, int aim
, int left
, int right
) {if(nums
[left
] <= aim
&& aim
<= nums
[right
]) {while(left
< right
) {if(nums
[(left
+right
)/2] < aim
) {left
= (left
+right
)/2+1;}else {right
= (left
+right
)/2;}}}return nums
[left
] == aim
?left
: -1;
}void threeSum(int* nums
, int numsSize
) {Bub_Sort(nums
, 0, numsSize
-1, 1); int last
= 0; int base_seek
;int seek
; int last_negative_seek
=last
+2; int last_positive_seek
= numsSize
-1; int flag
; int temp
;while(nums
[last
]<=0 && (numsSize
-1)-last
>=2){base_seek
=last
+1;flag
=0;while(!flag
&& base_seek
<=numsSize
-2){temp
=nums
[last
]+nums
[base_seek
];if(temp
>=0){seek
=last_negative_seek
;if(nums
[seek
]+temp
>=0){for(seek
;seek
>last
+1;seek
--){if(nums
[seek
]+temp
==0){flag
=1;break;}}}else{seek
++;while(seek
<numsSize
-1 && nums
[seek
]<=0){if(nums
[seek
]+temp
==0){flag
=1;break;}seek
++;}}if(flag
){last_negative_seek
=seek
;printf("%d %d %d\n",nums
[last
],nums
[base_seek
],nums
[seek
]);}else{if(last_negative_seek
-last
<2){last_negative_seek
=last
+2;}}}else{seek
=last_positive_seek
;if(nums
[seek
]+temp
>=0){while(seek
>last
+1 && nums
[seek
]>0){if(nums
[seek
]+temp
==0){flag
=1;break;}seek
--;}}else{seek
++;for(seek
;seek
<numsSize
;seek
++){if(nums
[seek
]+temp
==0){flag
=1;break;}seek
++;}}if(flag
){last_positive_seek
=seek
;printf("%d %d %d\n",nums
[last
],nums
[base_seek
],nums
[seek
]);}}base_seek
++;}last
++;}
}int main() {int nums
[15] = {7,7,7, 5, 3, 0, 0, 0, -1, 4, -6, -7, 2, -4, 2};threeSum(nums
, sizeof(nums
)/sizeof(nums
[0]));return 0;
}
總結(jié)
以上是生活随笔為你收集整理的Leetcode题库 15.三数之和_1(双指针 C实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。