經典筆試題練習之陣列查詢(1)第乙個重複元素

2021-08-28 12:20:38 字數 1444 閱讀 6643

《劍指offer名題精講2版》p39

題目侷限性:

輸入陣列的長度0-200,陣列內每個元素都在0-200之間。

解決思路:

使陣列的值與陣列下標一一對應。

書中原始碼:

#include#include#define false 0

#define true 1

int dup(int num,int len,int *dup)

for(i=0;ilen-1)

}for(i=0;i自己動手寫一下(未完待續):

#include#include#include#define false 0

#define true 1

#define len(x) (sizeof(x)/sizeof(int))

int dup(int num,int len,int *dup)

for(i=0;ilen-1)

}for(i=0;itmp=num[i];

num[i]=num[tmp];

num[tmp]=tmp;

} }return false;

}int f(int a,char buf,int len)

*/ for(i=0;iprintf("\n");

for(i=0;ireturn sum;

}int main(int argc, const char *argv)

; //int a[7];

//int a[20];//發現浪費了空間,需求動態分配空間。

int *a;

int ret=0;

char buf[20];

char *s;

/*輸入一

乙個乙個輸入陣列元素

for(ret=0;ret<7;ret++)

相同寫法

scanf("%d%d%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6]);

*/ /*輸入二

//輸入字串12345放陣列a裡

scanf("%s",buf);

//printf("%d\n",atol(a));//用庫函式轉換成乙個int

//printf("%s\n",buf+1);//移動了1位元組(1個char型數的大小)

f(a,buf,len(a));//呼叫函式,分割字元填入陣列

*/ //輸入三,不定長數字,#結束,建立對應長度的陣列

//輸入四,不定長字串,#結束,建立對應長度的陣列

for(ret=0;ret<7;ret++)

//輸出一,查出第乙個重複出現的數字

//dup(a,len(a),&ret);

//printf("%d\n",ret);

//輸出二,查出陣列裡所有重複的值

return 0;

}

筆試題 第乙個只出現一次的字元

題目 在字串中找出第乙個只出現一次的字元,如輸入 abaccdeff 則輸出 b 分析 題目中要求第乙個只出現一次的字元,那麼就跟字元出現的次數有關。我們考慮如何統計字元出現的次數,然後找出第乙個次數為1的那個字元。這裡我們需要乙個資料容器來儲存字元出現次數,並且能夠通過字元找出其相對應的次數。雜湊...

排序陣列查詢第乙個和最後乙個位置

描述 給定乙個按照公升序排列的整數陣列 nums,和乙個目標值 target。找出給定目標值在陣列中的開始位置和結束位置。你的演算法時間複雜度必須是 o log n 級別。如果陣列中不存在目標值,返回 1,1 package leetcoder author zhaoliang program ne...

經典面試題之兩個鍊錶的第乙個公共結點

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。我們先看下邊這個圖 對於單向鍊錶而言,從兩個單鏈表第乙個公共結點開始,之後它們的所有結點都是重合的,不可能再出現分叉。對於題目,我們最簡單的想法就是在第乙個鍊錶上順序遍歷每個結點,每遍歷到乙個結點時,在第二個鍊錶上順序遍歷每個結點,直到找到公共頂點,...