数据结构算法题-数组字符串

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 }
CheckStr.c

 

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 }
Fibonacci.c

 






以上是关于数据结构算法题-数组字符串的主要内容,如果未能解决你的问题,请参考以下文章

数据结构算法题-数组字符串

《剑指Offer:专项突破版》 - 数组部分 JavaScript 题解

一文通数据结构与算法之——数组+常见题型与解题策略+Leetcode经典题

初识面试中的算法题

算法题前端解决方案——JavaScript代码实现

FCC JS基础算法题:Reverse a String(翻转字符串)