int Solution::firstMissingPositive(vector<int> &A) {
int n= A.size(),old_i,new_i,i;
for(i=0;i<n;){
old_i=i;
while(A[i]>0 && A[A[i]-1]>=0 && A[A[i]-1]<n){
new_i=A[A[i]-1]-1;
A[A[i]-1]=-1;
i=new_i;
}
if(i>=0 && i<n){
A[i]=-1;
}
i=old_i+1;
}
for(i=0;i<n;i++){
if(A[i]!=-1)
break;
}
return (i+1);
}
该程序在以下输入上给出正确的输出
[181 229 888 742 191 843 721 268 439 238 585 120 514 201 829 334 467 636 735 743 405 541 710 798 632 397 625 440 508 794 696 319 810 297 369 425 617 520 216 43 759 258 914 863 929 638 656 699 648 275 786 315 370 462 969 828 727 756 200 243 842 46 110 158 361 224 560 539 874 505 621 661 8 808 635 609 213 844 67 922 74 481 237 174 449 40 154 905 571 558 952 24 658 662 179 686 -4 784 300 755 873 618 981 928 286 188 150 73 1000 598 225 814 595 532 673 793 290 774 909 876 855 375 235 524 365 613 333 7 336 848 959 797 328 90 629 140 59 69 339 640 199 732 317 395 940 263 799 172 570 56 730 468 461 801 282 502 389 295 871 740 921 35 933 690 717 778 48 547 257 823 272 985 681 528 204 536 889 486 305 586 956 861]
当作为测试输入运行但在提交时给出以下运行时错误-
*** Error in `./solution': free(): invalid next size (normal): 0x0000000000a35010 ***
Aborted