1. 程式人生 > >紀念死去的2018計算機考研程式設計題

紀念死去的2018計算機考研程式設計題

具體題目我現在沒有 但是 前幾天很不甘心的翻了一下別人那時候斜下的題目大意,我驚奇的發現,我看錯題目意思了

已知int陣列長度n,求陣列中未曾出現過的最小正整數,要求時間複雜度儘可能優化。

例如{1,2,4,6},應該返回3

而我卻看成出現的最小的正整數!!!把‘未’字漏了!!!

最可怕的是 !!! 我還檢查了題意三遍!!!我就怕我誤會了題目的意思!!!我就知道我會誤會題目的意思。。。

import java.util.*;

public class ArrayMex {
    public int findArrayMex(int[] A, int n) {
         int[] flag = new int[n+1];
        int k = -1;
        for(int i=0;i<A.length;i++){
        	if (A[i] >= 0 && A[i] < n+1) {
        		flag[A[i]] = 1;
			}
        }
        for(int i=1;i<flag.length;i++){
            if(flag[i] == 0){
                k = i;
                break;
            }
        }
//        for (int i = 1; i < flag.length; i++) {
//			System.out.print(flag[i]);
//		}
//        System.out.println();
        if(k != -1){
            return k;
        } else {
            return A.length+1;
        }
    }
}
題目連結:https://www.nowcoder.com/practice/9e7a6bcdbce74feb8013d252d76855da?rp=2&ru=/activity/oj&qru=/ta/2016test/question-ranking