数据结构算法题-数组字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构算法题-数组字符串相关的知识,希望对你有一定的参考价值。
1.查找最小的 k 个元素(数组) 题目:输入 n 个整数,输出其中最小的 k 个。
例如输入 1,2,3,4,5,6,7 和 8 这 8 个数字,则最小的 4 个数字为 1,2,3 和 4。
k_big.c
2.查找最小的 k 个元素(数组) 题目:输入 n 个整数,输出其中最小的 k 个。
例如输入 1,2,3,4,5,6,7 和 8 这 8 个数字,则最小的 4 个数字为 1,2,3 和 4
k_big.c
3.判断一个字符串是否对称
1 bool CheckStr(const char* str) 2 { 3 int Len = strlen(str); 4 for (int i = 0; i < Len; ++i) 5 { 6 if (*(str + i) != (*(str + (Len - i - 1)))) 7 return false; 8 } 9 return true; 10 } 11 12 int SymmetricString( const char *ch) 13 { 14 int len=strlen(ch); 15 int i=0,j=len-1; 16 if(len%2!=0) 17 return 0; 18 for(i=0,j=len-1;i<=len/2;i++,j--) 19 { 20 if(ch[i]!=ch[j]) 21 return 0; 22 } 23 return 1; 24 }
4. 题目:定义 Fibonacci 数列如下:
/ 0 n=0
f(n)= 1 n=1
\\ f(n-1)+f(n-2) n=2
输入 n,用最快的方法求该数列的第 n 项。
1 #include <stdio.h> 2 //递归 3 int Fibonacci(int n) 4 { 5 switch(n) 6 { 7 case 0: 8 return 0; 9 case 1: 10 return 1; 11 default: 12 return Fibonacci(n - 1) + Fibonacci(n - 2); 13 } 14 } 15 16 //非递归 17 int nonrecursionFibonacci(int n) 18 { 19 int a = 0, b = 1; 20 int i; 21 switch(n) 22 { 23 case 0: 24 return 0; 25 case 1: 26 return 1; 27 default: 28 { 29 for (i = 0; i < n - 1; i++) 30 { 31 int c = a + b; 32 a = b; 33 b = c; 34 } 35 return b; 36 } 37 } 38 } 39 40 int main() 41 { 42 int f = Fibonacci(4); 43 int ff = nonrecursionFibonacci(4); 44 printf("%d,%d",f,ff); 45 return 0; 46 }
以上是关于数据结构算法题-数组字符串的主要内容,如果未能解决你的问题,请参考以下文章
《剑指Offer:专项突破版》 - 数组部分 JavaScript 题解