/*
題目:給定乙個無序的整數陣列,怎麼找到第乙個大於0,並且不在此陣列的整數。
比如 [1,2,0] 返回 3, [3,4,-1,1] 返回 2。最好能 o(1) 空間和 o(n) 時間。
*/#include#include//思路:
/* 陣列a[n]長度為n。
因為要求尋找的數必須大於0.
所以假定有一列數 [1...n]
那麼a[n]中的數和[1...n]有如下幾種關係
逐一查詢,看[1...n]中的數在a[n]中是否都存在。
1.[1...n]裡的元素,a[n]中都有,那麼這兩組數重合了,因此,既》0,又不屬於a[n]的數,為n+1;
2.若不重合,[1...n]中哪個元素先沒有的,答案就是此數。
但是二分查詢需要有序表。得先排序
二分查詢的話,查詢n個元素需要o(nlogn)
*///二分查詢函式
bool binserch(int x, int *a, int n)
else if(xa[i])
}if(ra[large])
}if(large!=i)
}void buildheap(int *a,int len)
void heapsort(int *a,int len)
printf("\n");
}void lookftlose(int *a,int array_len)
}printf("%d\n",array_len+1);
}//main函式
int main()
{ int i;//計數器
int n;//陣列大小
int *a;//待處理資料
int res;//儲存結果;
while(scanf("%d",&n)!=eof)
{a=(int *)malloc(n*sizeof(int));//為動態陣列a分配空間
//輸入資料
for(i=0;i
數字遊戲 尋找缺失的數字
演算法專題導航頁面 演算法專題 應用場景 數字遊戲 尋找缺失的數字 尋找兩個排序陣列 長度相等 的上中位數 題目 程式猿小明來自於乙個游牧家庭,家裡有乙個大大的牧場和成群結隊的牛羊,為了便於管理羊群,小明決定對每只綿羊進行編號標記,最終剛好用完100個號碼 1 100 小明的日常生活簡單的有點枯燥 ...
尋找輸入數字中的全數字
題目內容 如果乙個n位數剛好包含了1至n中所有數字各一次則稱它們是全數字 pandigital 的,例如四位數1324就是1至4全數字的。從鍵盤上輸入一組整數,輸出其中的全數字 import copy defpandigital nums a,e a.extend list nums e copy....
LeetCode 尋找丟失的數字
給定乙個包含 0,n 中n個數的陣列nums,找出 0,n 這個範圍內沒有出現在陣列中 的那個數字.示例 1 input nums 3,0,1 output 2 示例 2 input nums 0,1 output 2 因為有2個數字,所有數字都在 0,2 之間內.示例 3 input nums 9...