【题解】《C语言入门100例》(第27例) 穷举查找

一. 穷举查找

  穷举法在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这结论是可靠的,这种归纳方法叫做穷举法我们通常利用计算机运算速度快的特点,将所有情况都一一列举出来进行操作。

基本思路:

  1. 确定穷举对象
  2. 确定穷举范围

举例:
  在一个数组内查找某一个数第一次出现的位置,并返回其下标。

代码如下:

#include <stdio.h>

int Find(int arr[], int n){
    
    
	for (int i = 0; i < arr; i++){
    
    
		if(arr[i] == n){
    
    
			return i;
		}
	}
	return -1;
}

int main(){
    
    
	int arr[] = {
    
     3, 4, 2, 6, 4, 2, 7, 5, 7 };
	int n = Find(arr, 5);
	printf("5第一次出现的位置为:%d\n", n);

	return 0;
}

二. 推荐专栏

《C语言入门100例》(第27例) 穷举查找

三. 相关练习

3.1 统计位数为偶数的数字

题目链接:

1295. 统计位数为偶数的数字

这到题我们通过穷举法,对每个数字进行判断,如果为偶数就++。

代码如下:

int findNumbers(int* nums, int numsSize){
    
    
    int ret = 0;
    for(int i = 0; i < numsSize; i++){
    
    
        int n = 0;
        while(nums[i]){
    
    
            nums[i] /= 10;
            n++;
        }
        if(n % 2 == 0){
    
    
            ret++;
        }
    }
    return ret;
}

3.2 有序数组中的单一元素

题目链接:

540. 有序数组中的单一元素

应为给定的数组是有序的,所以我们对其进行穷举,进行判断

代码如下:

int singleNonDuplicate(int* nums, int numsSize){
    
    
    int i = 0;
    for(; i < numsSize - 1; i += 2){
    
    
        if(nums[i] != nums[i + 1]){
    
    
            return nums[i];
        }
    }
    return nums[i];
}

猜你喜欢

转载自blog.csdn.net/qq_53060585/article/details/121599283
今日推荐